diff options
Diffstat (limited to 'include/effects/SkRectShape.h')
-rw-r--r-- | include/effects/SkRectShape.h | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/include/effects/SkRectShape.h b/include/effects/SkRectShape.h new file mode 100644 index 0000000..9b8cfc1 --- /dev/null +++ b/include/effects/SkRectShape.h @@ -0,0 +1,56 @@ +#ifndef SkRectShape_DEFINED +#define SkRectShape_DEFINED + +#include "SkShape.h" +#include "SkPaint.h" +#include "SkSize.h" + +class SkPaintShape : public SkShape { +public: + SkPaintShape(); + + SkPaint& paint() { return fPaint; } + const SkPaint& paint() const { return fPaint; } + + // overrides + virtual void flatten(SkFlattenableWriteBuffer&); + +protected: + SkPaintShape(SkFlattenableReadBuffer& buffer); + +private: + SkPaint fPaint; + + typedef SkShape INHERITED; +}; + +class SkRectShape : public SkPaintShape { +public: + SkRectShape(); + + void setRect(const SkRect&); + void setOval(const SkRect&); + void setCircle(SkScalar x, SkScalar y, SkScalar radius); + void setRRect(const SkRect&, SkScalar rx, SkScalar ry); + + // overrides + virtual Factory getFactory(); + virtual void flatten(SkFlattenableWriteBuffer&); + + // public for Registrar + static SkFlattenable* CreateProc(SkFlattenableReadBuffer&); + +protected: + SkRectShape(SkFlattenableReadBuffer&); + + // overrides + virtual void onDraw(SkCanvas*); + +private: + SkRect fBounds; + SkSize fRadii; + + typedef SkPaintShape INHERITED; +}; + +#endif |