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
17const SkMemberInfo SkDrawTo::fInfo[] = {
18    SK_MEMBER(drawOnce, Boolean),
19    SK_MEMBER(use, Bitmap)
20};
21
22#endif
23
24DEFINE_GET_MEMBER(SkDrawTo);
25
26SkDrawTo::SkDrawTo() : drawOnce(false), use(NULL), fDrawnOnce(false) {
27}
28
29#if 0
30SkDrawTo::~SkDrawTo() {
31    SkASSERT(0);
32}
33#endif
34
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
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