00001 #ifndef SkShape_DEFINED 00002 #define SkShape_DEFINED 00003 00004 #include "SkFlattenable.h" 00005 00006 class SkCanvas; 00007 class SkMatrix; 00008 class SkWStream; 00009 00010 class SkShape : public SkFlattenable { 00011 public: 00012 SkShape(); 00013 virtual ~SkShape(); 00014 00015 void draw(SkCanvas*); 00016 00020 void drawXY(SkCanvas*, SkScalar dx, SkScalar dy); 00021 00025 void drawMatrix(SkCanvas*, const SkMatrix&); 00026 00027 // overrides 00028 virtual Factory getFactory(); 00029 virtual void flatten(SkFlattenableWriteBuffer&); 00030 00031 // public for Registrar 00032 static SkFlattenable* CreateProc(SkFlattenableReadBuffer&); 00033 00034 protected: 00035 virtual void onDraw(SkCanvas*); 00036 00037 SkShape(SkFlattenableReadBuffer&); 00038 00039 private: 00040 00041 typedef SkFlattenable INHERITED; 00042 }; 00043 00044 #endif