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 SkDrawTo()26SkDrawTo::SkDrawTo() : drawOnce(false), use(nullptr), fDrawnOnce(false) { 27 } 28 29 #if 0 30 SkDrawTo::~SkDrawTo() { 31 SkASSERT(0); 32 } 33 #endif 34 draw(SkAnimateMaker & maker)35bool 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 dump(SkAnimateMaker * maker)48void 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