blob: a06adfc3ba5b36c016f987b84b60ce5dd1bfba6a [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
reed@android.comf76bacf2009-05-13 14:00:33 +000022protected:
23 SkPaintShape(SkFlattenableReadBuffer& buffer);
djsollen@google.com54924242012-03-29 15:18:04 +000024 virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE;
reed@android.comf76bacf2009-05-13 14:00:33 +000025
26private:
27 SkPaint fPaint;
28
29 typedef SkShape INHERITED;
30};
31
32class SkRectShape : public SkPaintShape {
33public:
34 SkRectShape();
35
36 void setRect(const SkRect&);
37 void setOval(const SkRect&);
38 void setCircle(SkScalar x, SkScalar y, SkScalar radius);
39 void setRRect(const SkRect&, SkScalar rx, SkScalar ry);
40
djsollen@google.comba28d032012-03-26 17:57:35 +000041 SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkRectShape)
reed@android.com0ad336f2009-06-29 16:02:20 +000042
reed@android.comf76bacf2009-05-13 14:00:33 +000043protected:
44 SkRectShape(SkFlattenableReadBuffer&);
djsollen@google.com54924242012-03-29 15:18:04 +000045 virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE;
reed@android.comf76bacf2009-05-13 14:00:33 +000046
47 // overrides
48 virtual void onDraw(SkCanvas*);
49
50private:
51 SkRect fBounds;
52 SkSize fRadii;
53
reed@android.comf76bacf2009-05-13 14:00:33 +000054 typedef SkPaintShape INHERITED;
55};
56
57#endif