180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru/* 380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru * Copyright 2006 The Android Open Source Project 480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru * 580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru * Use of this source code is governed by a BSD-style license that can be 680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru * found in the LICENSE file. 780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru */ 880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 1080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#include "SkDrawTo.h" 1180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#include "SkAnimateMaker.h" 1280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#include "SkCanvas.h" 1380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#include "SkDrawBitmap.h" 1480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 1580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#if SK_USE_CONDENSED_INFO == 0 1680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 1780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruconst SkMemberInfo SkDrawTo::fInfo[] = { 1880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SK_MEMBER(drawOnce, Boolean), 1980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SK_MEMBER(use, Bitmap) 2080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru}; 2180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 2280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#endif 2380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 2480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste QueruDEFINE_GET_MEMBER(SkDrawTo); 2580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 2680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste QueruSkDrawTo::SkDrawTo() : drawOnce(false), use(NULL), fDrawnOnce(false) { 2780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru} 2880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 2980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#if 0 3080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste QueruSkDrawTo::~SkDrawTo() { 3180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkASSERT(0); 3280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru} 3380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#endif 3480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 3580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Querubool SkDrawTo::draw(SkAnimateMaker& maker) { 3680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru if (fDrawnOnce) 3780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru return false; 3880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkCanvas canvas(use->fBitmap); 3980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkCanvas* save = maker.fCanvas; 4080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru maker.fCanvas = &canvas; 4180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru INHERITED::draw(maker); 4280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru maker.fCanvas = save; 4380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru fDrawnOnce = drawOnce; 4480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru return false; 4580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru} 4680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 4780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#ifdef SK_DUMP_ENABLED 4880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruvoid SkDrawTo::dump(SkAnimateMaker* maker) { 4980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru dumpBase(maker); 5080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru dumpAttrs(maker); 5180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru if (use) 5280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkDebugf("use=\"%s\" ", use->id); 5380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru dumpDrawables(maker); 5480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru} 5580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#endif 56