blob: dfc07e95c70150eda8e1c7b07dbd21bbd4a3e422 [file] [log] [blame]
reed@android.comf76bacf2009-05-13 14:00:33 +00001#ifndef SkRectShape_DEFINED
2#define SkRectShape_DEFINED
3
4#include "SkShape.h"
5#include "SkPaint.h"
6#include "SkSize.h"
7
8class SkPaintShape : public SkShape {
9public:
10 SkPaintShape();
11
12 SkPaint& paint() { return fPaint; }
13 const SkPaint& paint() const { return fPaint; }
14
15 // overrides
16 virtual void flatten(SkFlattenableWriteBuffer&);
17
18protected:
19 SkPaintShape(SkFlattenableReadBuffer& buffer);
20
21private:
22 SkPaint fPaint;
23
24 typedef SkShape INHERITED;
25};
26
27class SkRectShape : public SkPaintShape {
28public:
29 SkRectShape();
30
31 void setRect(const SkRect&);
32 void setOval(const SkRect&);
33 void setCircle(SkScalar x, SkScalar y, SkScalar radius);
34 void setRRect(const SkRect&, SkScalar rx, SkScalar ry);
35
36 // overrides
37 virtual Factory getFactory();
38 virtual void flatten(SkFlattenableWriteBuffer&);
39
40protected:
41 SkRectShape(SkFlattenableReadBuffer&);
42
43 // overrides
44 virtual void onDraw(SkCanvas*);
45
46private:
47 SkRect fBounds;
48 SkSize fRadii;
49
50 static SkFlattenable* CreateProc(SkFlattenableReadBuffer&);
51
52 typedef SkPaintShape INHERITED;
53};
54
55#endif