| /* | |
| * Copyright 2006 The Android Open Source Project | |
| * | |
| * Use of this source code is governed by a BSD-style license that can be | |
| * found in the LICENSE file. | |
| */ | |
| #include "SkDrawTo.h" | |
| #include "SkAnimateMaker.h" | |
| #include "SkCanvas.h" | |
| #include "SkDrawBitmap.h" | |
| #if SK_USE_CONDENSED_INFO == 0 | |
| const SkMemberInfo SkDrawTo::fInfo[] = { | |
| SK_MEMBER(drawOnce, Boolean), | |
| SK_MEMBER(use, Bitmap) | |
| }; | |
| #endif | |
| DEFINE_GET_MEMBER(SkDrawTo); | |
| SkDrawTo::SkDrawTo() : drawOnce(false), use(nullptr), fDrawnOnce(false) { | |
| } | |
| #if 0 | |
| SkDrawTo::~SkDrawTo() { | |
| SkASSERT(0); | |
| } | |
| #endif | |
| bool SkDrawTo::draw(SkAnimateMaker& maker) { | |
| if (fDrawnOnce) | |
| return false; | |
| SkCanvas canvas(use->fBitmap); | |
| SkCanvas* save = maker.fCanvas; | |
| maker.fCanvas = &canvas; | |
| INHERITED::draw(maker); | |
| maker.fCanvas = save; | |
| fDrawnOnce = drawOnce; | |
| return false; | |
| } | |
| #ifdef SK_DUMP_ENABLED | |
| void SkDrawTo::dump(SkAnimateMaker* maker) { | |
| dumpBase(maker); | |
| dumpAttrs(maker); | |
| if (use) | |
| SkDebugf("use=\"%s\" ", use->id); | |
| dumpDrawables(maker); | |
| } | |
| #endif |