michael@0: michael@0: /* michael@0: * Copyright 2006 The Android Open Source Project michael@0: * michael@0: * Use of this source code is governed by a BSD-style license that can be michael@0: * found in the LICENSE file. michael@0: */ michael@0: michael@0: michael@0: #ifndef SkDrawBitmap_DEFINED michael@0: #define SkDrawBitmap_DEFINED michael@0: michael@0: #include "SkBoundable.h" michael@0: #include "SkBase64.h" michael@0: #include "SkBitmap.h" michael@0: // #include "SkImageDecoder.h" michael@0: #include "SkMemberInfo.h" michael@0: michael@0: class SkBaseBitmap : public SkBoundable { michael@0: DECLARE_MEMBER_INFO(BaseBitmap); michael@0: SkBaseBitmap(); michael@0: virtual ~SkBaseBitmap(); michael@0: virtual bool draw(SkAnimateMaker& ); michael@0: protected: michael@0: SkBitmap fBitmap; michael@0: SkScalar x; michael@0: SkScalar y; michael@0: private: michael@0: friend class SkDrawTo; michael@0: friend class SkDrawBitmapShader; michael@0: typedef SkBoundable INHERITED; michael@0: }; michael@0: michael@0: class SkDrawBitmap : public SkBaseBitmap { michael@0: DECLARE_DRAW_MEMBER_INFO(Bitmap); michael@0: SkDrawBitmap(); michael@0: virtual ~SkDrawBitmap(); michael@0: #ifdef SK_DUMP_ENABLED michael@0: virtual void dump(SkAnimateMaker* ); michael@0: #endif michael@0: virtual void onEndElement(SkAnimateMaker& ); michael@0: virtual bool setProperty(int index, SkScriptValue& value); michael@0: protected: michael@0: int /*SkBitmap::Config*/ format; michael@0: int32_t height; michael@0: int32_t rowBytes; michael@0: int32_t width; michael@0: SkColor fColor; michael@0: SkBool fColorSet; michael@0: typedef SkBaseBitmap INHERITED; michael@0: }; michael@0: michael@0: class SkImageBaseBitmap : public SkBaseBitmap { michael@0: DECLARE_MEMBER_INFO(ImageBaseBitmap); michael@0: SkImageBaseBitmap(); michael@0: virtual ~SkImageBaseBitmap(); michael@0: virtual SkDisplayable* deepCopy(SkAnimateMaker* ); michael@0: virtual void dirty(); michael@0: virtual bool draw(SkAnimateMaker& ); michael@0: virtual bool getProperty(int index, SkScriptValue* value) const; michael@0: virtual void onEndElement(SkAnimateMaker& maker); michael@0: private: michael@0: void resolve() const { (const_cast(this))->resolve(); } michael@0: void resolve(); michael@0: protected: michael@0: SkBase64 base64; michael@0: SkString src; michael@0: SkString fLast; // cache of src so that stream isn't unnecessarily decoded michael@0: SkBool fDirty; michael@0: const char* fUriBase; michael@0: typedef SkBaseBitmap INHERITED; michael@0: }; michael@0: michael@0: #endif // SkDrawBitmap_DEFINED