blob: b521846ad521a31e338adad13a1005b44d1704bb [file] [log] [blame]
epoger@google.comec3ed6a2011-07-28 14:26:00 +00001
2/*
3 * Copyright 2011 Google Inc.
4 *
5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file.
7 */
reed@android.comf76bacf2009-05-13 14:00:33 +00008#ifndef SkRectShape_DEFINED
9#define SkRectShape_DEFINED
10
11#include "SkShape.h"
12#include "SkPaint.h"
13#include "SkSize.h"
14
15class SkPaintShape : public SkShape {
16public:
17 SkPaintShape();
18
19 SkPaint& paint() { return fPaint; }
20 const SkPaint& paint() const { return fPaint; }
21
22 // overrides
23 virtual void flatten(SkFlattenableWriteBuffer&);
24
25protected:
26 SkPaintShape(SkFlattenableReadBuffer& buffer);
27
28private:
29 SkPaint fPaint;
30
31 typedef SkShape INHERITED;
32};
33
34class SkRectShape : public SkPaintShape {
35public:
36 SkRectShape();
37
38 void setRect(const SkRect&);
39 void setOval(const SkRect&);
40 void setCircle(SkScalar x, SkScalar y, SkScalar radius);
41 void setRRect(const SkRect&, SkScalar rx, SkScalar ry);
42
43 // overrides
44 virtual Factory getFactory();
45 virtual void flatten(SkFlattenableWriteBuffer&);
46
reed@android.com0ad336f2009-06-29 16:02:20 +000047 // public for Registrar
48 static SkFlattenable* CreateProc(SkFlattenableReadBuffer&);
49
reed@android.comf76bacf2009-05-13 14:00:33 +000050protected:
51 SkRectShape(SkFlattenableReadBuffer&);
52
53 // overrides
54 virtual void onDraw(SkCanvas*);
55
56private:
57 SkRect fBounds;
58 SkSize fRadii;
59
reed@android.comf76bacf2009-05-13 14:00:33 +000060 typedef SkPaintShape INHERITED;
61};
62
63#endif