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#ifndef SkDrawBitmap_DEFINED 1180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#define SkDrawBitmap_DEFINED 1280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 1380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#include "SkBoundable.h" 1480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#include "SkBase64.h" 1580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#include "SkBitmap.h" 1680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru// #include "SkImageDecoder.h" 1780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#include "SkMemberInfo.h" 1880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 1980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruclass SkBaseBitmap : public SkBoundable { 2080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru DECLARE_MEMBER_INFO(BaseBitmap); 2180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkBaseBitmap(); 2280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual ~SkBaseBitmap(); 2380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual bool draw(SkAnimateMaker& ); 2480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruprotected: 2580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkBitmap fBitmap; 2680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkScalar x; 2780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkScalar y; 2880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruprivate: 2980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru friend class SkDrawTo; 3080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru friend class SkDrawBitmapShader; 3180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru typedef SkBoundable INHERITED; 3280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru}; 3380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 3480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruclass SkDrawBitmap : public SkBaseBitmap { 3580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru DECLARE_DRAW_MEMBER_INFO(Bitmap); 3680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkDrawBitmap(); 3780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual ~SkDrawBitmap(); 3880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#ifdef SK_DUMP_ENABLED 3980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual void dump(SkAnimateMaker* ); 4080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#endif 4180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual void onEndElement(SkAnimateMaker& ); 4280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual bool setProperty(int index, SkScriptValue& value); 4380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruprotected: 4480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru int /*SkBitmap::Config*/ format; 4580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru int32_t height; 4680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru int32_t rowBytes; 4780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru int32_t width; 4880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkColor fColor; 4980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkBool fColorSet; 5080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru typedef SkBaseBitmap INHERITED; 5180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru}; 5280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 5380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruclass SkImageBaseBitmap : public SkBaseBitmap { 5480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru DECLARE_MEMBER_INFO(ImageBaseBitmap); 5580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkImageBaseBitmap(); 5680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual ~SkImageBaseBitmap(); 5780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual SkDisplayable* deepCopy(SkAnimateMaker* ); 5880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual void dirty(); 5980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual bool draw(SkAnimateMaker& ); 6080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual bool getProperty(int index, SkScriptValue* value) const; 6180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual void onEndElement(SkAnimateMaker& maker); 6280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruprivate: 6380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru void resolve() const { (const_cast<SkImageBaseBitmap*>(this))->resolve(); } 6480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru void resolve(); 6580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruprotected: 6680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkBase64 base64; 6780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkString src; 6880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkString fLast; // cache of src so that stream isn't unnecessarily decoded 6980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkBool fDirty; 7080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru const char* fUriBase; 7180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru typedef SkBaseBitmap INHERITED; 7280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru}; 7380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 7480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#endif // SkDrawBitmap_DEFINED 75