blob: 927c33b2151812e8c9e0741224b627ea2a187c38 [file] [log] [blame]
epoger@google.comec3ed6a2011-07-28 14:26:00 +00001
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
reed@android.com8a1c16f2008-12-17 15:59:43 +00009
10#ifndef SkDrawBitmap_DEFINED
11#define SkDrawBitmap_DEFINED
12
13#include "SkBoundable.h"
14#include "SkBase64.h"
15#include "SkBitmap.h"
16// #include "SkImageDecoder.h"
17#include "SkMemberInfo.h"
18
19class SkBaseBitmap : public SkBoundable {
20 DECLARE_MEMBER_INFO(BaseBitmap);
21 SkBaseBitmap();
22 virtual ~SkBaseBitmap();
23 virtual bool draw(SkAnimateMaker& );
24protected:
25 SkBitmap fBitmap;
26 SkScalar x;
27 SkScalar y;
28private:
29 friend class SkDrawTo;
30 friend class SkDrawBitmapShader;
31 typedef SkBoundable INHERITED;
32};
33
34class SkDrawBitmap : public SkBaseBitmap {
35 DECLARE_DRAW_MEMBER_INFO(Bitmap);
36 SkDrawBitmap();
37 virtual ~SkDrawBitmap();
38#ifdef SK_DUMP_ENABLED
39 virtual void dump(SkAnimateMaker* );
40#endif
41 virtual void onEndElement(SkAnimateMaker& );
42 virtual bool setProperty(int index, SkScriptValue& value);
43protected:
44 int /*SkBitmap::Config*/ format;
45 int32_t height;
46 int32_t rowBytes;
47 int32_t width;
48 SkColor fColor;
49 SkBool fColorSet;
50 typedef SkBaseBitmap INHERITED;
51};
52
reed@google.combdae0272012-07-27 15:30:40 +000053class SkImageBaseBitmap : public SkBaseBitmap {
54 DECLARE_MEMBER_INFO(ImageBaseBitmap);
55 SkImageBaseBitmap();
56 virtual ~SkImageBaseBitmap();
reed@android.com8a1c16f2008-12-17 15:59:43 +000057 virtual SkDisplayable* deepCopy(SkAnimateMaker* );
58 virtual void dirty();
59 virtual bool draw(SkAnimateMaker& );
60 virtual bool getProperty(int index, SkScriptValue* value) const;
61 virtual void onEndElement(SkAnimateMaker& maker);
62private:
reed@google.combdae0272012-07-27 15:30:40 +000063 void resolve() const { (const_cast<SkImageBaseBitmap*>(this))->resolve(); }
reed@android.com8a1c16f2008-12-17 15:59:43 +000064 void resolve();
65protected:
66 SkBase64 base64;
67 SkString src;
68 SkString fLast; // cache of src so that stream isn't unnecessarily decoded
69 SkBool fDirty;
70 const char* fUriBase;
71 typedef SkBaseBitmap INHERITED;
72};
73
74#endif // SkDrawBitmap_DEFINED