Home | History | Annotate | Download | only in animator
      1 
      2 /*
      3  * Copyright 2006 The Android Open Source Project
      4  *
      5  * Use of this source code is governed by a BSD-style license that can be
      6  * found in the LICENSE file.
      7  */
      8 
      9 
     10 #include "SkDrawTo.h"
     11 #include "SkAnimateMaker.h"
     12 #include "SkCanvas.h"
     13 #include "SkDrawBitmap.h"
     14 
     15 #if SK_USE_CONDENSED_INFO == 0
     16 
     17 const SkMemberInfo SkDrawTo::fInfo[] = {
     18     SK_MEMBER(drawOnce, Boolean),
     19     SK_MEMBER(use, Bitmap)
     20 };
     21 
     22 #endif
     23 
     24 DEFINE_GET_MEMBER(SkDrawTo);
     25 
     26 SkDrawTo::SkDrawTo() : drawOnce(false), use(NULL), fDrawnOnce(false) {
     27 }
     28 
     29 #if 0
     30 SkDrawTo::~SkDrawTo() {
     31     SkASSERT(0);
     32 }
     33 #endif
     34 
     35 bool SkDrawTo::draw(SkAnimateMaker& maker) {
     36     if (fDrawnOnce)
     37         return false;
     38     SkCanvas canvas(use->fBitmap);
     39     SkCanvas* save = maker.fCanvas;
     40     maker.fCanvas = &canvas;
     41     INHERITED::draw(maker);
     42     maker.fCanvas = save;
     43     fDrawnOnce = drawOnce;
     44     return false;
     45 }
     46 
     47 #ifdef SK_DUMP_ENABLED
     48 void SkDrawTo::dump(SkAnimateMaker* maker) {
     49     dumpBase(maker);
     50     dumpAttrs(maker);
     51     if (use)
     52         SkDebugf("use=\"%s\" ", use->id);
     53     dumpDrawables(maker);
     54 }
     55 #endif
     56