1/* libs/graphics/animator/SkDrawTo.cpp 2** 3** Copyright 2006, The Android Open Source Project 4** 5** Licensed under the Apache License, Version 2.0 (the "License"); 6** you may not use this file except in compliance with the License. 7** You may obtain a copy of the License at 8** 9** http://www.apache.org/licenses/LICENSE-2.0 10** 11** Unless required by applicable law or agreed to in writing, software 12** distributed under the License is distributed on an "AS IS" BASIS, 13** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14** See the License for the specific language governing permissions and 15** limitations under the License. 16*/ 17 18#include "SkDrawTo.h" 19#include "SkAnimateMaker.h" 20#include "SkCanvas.h" 21#include "SkDrawBitmap.h" 22 23#if SK_USE_CONDENSED_INFO == 0 24 25const SkMemberInfo SkDrawTo::fInfo[] = { 26 SK_MEMBER(drawOnce, Boolean), 27 SK_MEMBER(use, Bitmap) 28}; 29 30#endif 31 32DEFINE_GET_MEMBER(SkDrawTo); 33 34SkDrawTo::SkDrawTo() : drawOnce(false), use(NULL), fDrawnOnce(false) { 35} 36 37#if 0 38SkDrawTo::~SkDrawTo() { 39 SkASSERT(0); 40} 41#endif 42 43bool SkDrawTo::draw(SkAnimateMaker& maker) { 44 if (fDrawnOnce) 45 return false; 46 SkCanvas canvas(use->fBitmap); 47 SkCanvas* save = maker.fCanvas; 48 maker.fCanvas = &canvas; 49 INHERITED::draw(maker); 50 maker.fCanvas = save; 51 fDrawnOnce = drawOnce; 52 return false; 53} 54 55#ifdef SK_DUMP_ENABLED 56void SkDrawTo::dump(SkAnimateMaker* maker) { 57 dumpBase(maker); 58 dumpAttrs(maker); 59 if (use) 60 SkDebugf("use=\"%s\" ", use->id); 61 dumpDrawables(maker); 62} 63#endif 64 65