blob: 9b8cfc175c92e0cab6542de46868685ca715c0e4 [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
reed@android.com0ad336f2009-06-29 16:02:20 +000040 // public for Registrar
41 static SkFlattenable* CreateProc(SkFlattenableReadBuffer&);
42
reed@android.comf76bacf2009-05-13 14:00:33 +000043protected:
44 SkRectShape(SkFlattenableReadBuffer&);
45
46 // overrides
47 virtual void onDraw(SkCanvas*);
48
49private:
50 SkRect fBounds;
51 SkSize fRadii;
52
reed@android.comf76bacf2009-05-13 14:00:33 +000053 typedef SkPaintShape INHERITED;
54};
55
56#endif