blob: 6cee70e751a099154d3f2cc790eb9eebc76b3995 [file] [log] [blame]
reed@android.comf76bacf2009-05-13 14:00:33 +00001#ifndef SkShape_DEFINED
2#define SkShape_DEFINED
3
4#include "SkFlattenable.h"
reed@android.comf76bacf2009-05-13 14:00:33 +00005
6class SkCanvas;
reed@android.comf48f2812009-05-18 04:20:55 +00007class SkMatrix;
reed@android.comf76bacf2009-05-13 14:00:33 +00008class SkWStream;
9
10class SkShape : public SkFlattenable {
11public:
reed@android.com0ad336f2009-06-29 16:02:20 +000012 SkShape();
13 virtual ~SkShape();
reed@android.comf76bacf2009-05-13 14:00:33 +000014
15 void draw(SkCanvas*);
16
17 /** Draw the shape translated by (dx,dy), which is applied before the
18 shape's matrix (if any).
19 */
20 void drawXY(SkCanvas*, SkScalar dx, SkScalar dy);
reed@android.com89bb83a2009-05-29 21:30:42 +000021
reed@android.comf76bacf2009-05-13 14:00:33 +000022 /** Draw the shape with the specified matrix, applied before the shape's
23 matrix (if any).
24 */
25 void drawMatrix(SkCanvas*, const SkMatrix&);
26
27 // overrides
reed@android.com0ad336f2009-06-29 16:02:20 +000028 virtual Factory getFactory();
reed@android.comf76bacf2009-05-13 14:00:33 +000029 virtual void flatten(SkFlattenableWriteBuffer&);
30
reed@android.com0ad336f2009-06-29 16:02:20 +000031 // public for Registrar
32 static SkFlattenable* CreateProc(SkFlattenableReadBuffer&);
reed@android.comf76bacf2009-05-13 14:00:33 +000033
reed@android.com0ad336f2009-06-29 16:02:20 +000034protected:
35 virtual void onDraw(SkCanvas*);
36
37 SkShape(SkFlattenableReadBuffer&);
reed@android.comf76bacf2009-05-13 14:00:33 +000038
39private:
reed@android.comf76bacf2009-05-13 14:00:33 +000040
41 typedef SkFlattenable INHERITED;
42};
43
44#endif