OLD | NEW |
1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef CC_PAINT_PAINT_CANVAS_H_ | 5 #ifndef CC_PAINT_PAINT_CANVAS_H_ |
6 #define CC_PAINT_PAINT_CANVAS_H_ | 6 #define CC_PAINT_PAINT_CANVAS_H_ |
7 | 7 |
8 #include "base/compiler_specific.h" | 8 #include "base/compiler_specific.h" |
9 #include "base/macros.h" | 9 #include "base/macros.h" |
10 #include "build/build_config.h" | 10 #include "build/build_config.h" |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
46 virtual int save() = 0; | 46 virtual int save() = 0; |
47 virtual int saveLayer(const SkRect* bounds, const PaintFlags* flags) = 0; | 47 virtual int saveLayer(const SkRect* bounds, const PaintFlags* flags) = 0; |
48 virtual int saveLayerAlpha(const SkRect* bounds, U8CPU alpha) = 0; | 48 virtual int saveLayerAlpha(const SkRect* bounds, U8CPU alpha) = 0; |
49 | 49 |
50 virtual void restore() = 0; | 50 virtual void restore() = 0; |
51 virtual int getSaveCount() const = 0; | 51 virtual int getSaveCount() const = 0; |
52 virtual void restoreToCount(int save_count) = 0; | 52 virtual void restoreToCount(int save_count) = 0; |
53 virtual void translate(SkScalar dx, SkScalar dy) = 0; | 53 virtual void translate(SkScalar dx, SkScalar dy) = 0; |
54 virtual void scale(SkScalar sx, SkScalar sy) = 0; | 54 virtual void scale(SkScalar sx, SkScalar sy) = 0; |
55 virtual void rotate(SkScalar degrees) = 0; | 55 virtual void rotate(SkScalar degrees) = 0; |
56 virtual void rotate(SkScalar degrees, SkScalar px, SkScalar py) = 0; | |
57 virtual void concat(const SkMatrix& matrix) = 0; | 56 virtual void concat(const SkMatrix& matrix) = 0; |
58 virtual void setMatrix(const SkMatrix& matrix) = 0; | 57 virtual void setMatrix(const SkMatrix& matrix) = 0; |
59 virtual void resetMatrix() = 0; | |
60 | 58 |
61 virtual void clipRect(const SkRect& rect, | 59 virtual void clipRect(const SkRect& rect, |
62 SkClipOp op, | 60 SkClipOp op, |
63 bool do_anti_alias) = 0; | 61 bool do_anti_alias) = 0; |
64 void clipRect(const SkRect& rect, SkClipOp op) { clipRect(rect, op, false); } | 62 void clipRect(const SkRect& rect, SkClipOp op) { clipRect(rect, op, false); } |
65 void clipRect(const SkRect& rect, bool do_anti_alias) { | 63 void clipRect(const SkRect& rect, bool do_anti_alias) { |
66 clipRect(rect, SkClipOp::kIntersect, do_anti_alias); | 64 clipRect(rect, SkClipOp::kIntersect, do_anti_alias); |
67 } | 65 } |
68 void clipRect(const SkRect& rect) { | 66 void clipRect(const SkRect& rect) { |
69 clipRect(rect, SkClipOp::kIntersect, false); | 67 clipRect(rect, SkClipOp::kIntersect, false); |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
119 virtual void drawArc(const SkRect& oval, | 117 virtual void drawArc(const SkRect& oval, |
120 SkScalar start_angle, | 118 SkScalar start_angle, |
121 SkScalar sweep_angle, | 119 SkScalar sweep_angle, |
122 bool use_center, | 120 bool use_center, |
123 const PaintFlags& flags) = 0; | 121 const PaintFlags& flags) = 0; |
124 virtual void drawRoundRect(const SkRect& rect, | 122 virtual void drawRoundRect(const SkRect& rect, |
125 SkScalar rx, | 123 SkScalar rx, |
126 SkScalar ry, | 124 SkScalar ry, |
127 const PaintFlags& flags) = 0; | 125 const PaintFlags& flags) = 0; |
128 virtual void drawPath(const SkPath& path, const PaintFlags& flags) = 0; | 126 virtual void drawPath(const SkPath& path, const PaintFlags& flags) = 0; |
129 virtual void drawImage(const SkImage* image, | 127 virtual void drawImage(sk_sp<const SkImage> image, |
130 SkScalar left, | 128 SkScalar left, |
131 SkScalar top, | 129 SkScalar top, |
132 const PaintFlags* flags) = 0; | 130 const PaintFlags* flags) = 0; |
133 void drawImage(const SkImage* image, SkScalar left, SkScalar top) { | 131 void drawImage(sk_sp<const SkImage> image, SkScalar left, SkScalar top) { |
134 drawImage(image, left, top, nullptr); | |
135 } | |
136 virtual void drawImage(const sk_sp<SkImage>& image, | |
137 SkScalar left, | |
138 SkScalar top, | |
139 const PaintFlags* flags) = 0; | |
140 void drawImage(const sk_sp<SkImage>& image, SkScalar left, SkScalar top) { | |
141 drawImage(image, left, top, nullptr); | 132 drawImage(image, left, top, nullptr); |
142 } | 133 } |
143 | 134 |
144 enum SrcRectConstraint { | 135 enum SrcRectConstraint { |
145 kStrict_SrcRectConstraint = SkCanvas::kStrict_SrcRectConstraint, | 136 kStrict_SrcRectConstraint = SkCanvas::kStrict_SrcRectConstraint, |
146 kFast_SrcRectConstraint = SkCanvas::kFast_SrcRectConstraint, | 137 kFast_SrcRectConstraint = SkCanvas::kFast_SrcRectConstraint, |
147 }; | 138 }; |
148 | 139 |
149 virtual void drawImageRect(const SkImage* image, | 140 virtual void drawImageRect(sk_sp<const SkImage> image, |
150 const SkRect& src, | 141 const SkRect& src, |
151 const SkRect& dst, | 142 const SkRect& dst, |
152 const PaintFlags* flags, | 143 const PaintFlags* flags, |
153 SrcRectConstraint constraint) = 0; | 144 SrcRectConstraint constraint) = 0; |
154 virtual void drawBitmap(const SkBitmap& bitmap, | 145 virtual void drawBitmap(const SkBitmap& bitmap, |
155 SkScalar left, | 146 SkScalar left, |
156 SkScalar top, | 147 SkScalar top, |
157 const PaintFlags* flags) = 0; | 148 const PaintFlags* flags) = 0; |
158 void drawBitmap(const SkBitmap& bitmap, SkScalar left, SkScalar top) { | 149 void drawBitmap(const SkBitmap& bitmap, SkScalar left, SkScalar top) { |
159 drawBitmap(bitmap, left, top, nullptr); | 150 drawBitmap(bitmap, left, top, nullptr); |
160 } | 151 } |
161 | 152 |
162 virtual void drawText(const void* text, | 153 virtual void drawText(const void* text, |
163 size_t byte_length, | 154 size_t byte_length, |
164 SkScalar x, | 155 SkScalar x, |
165 SkScalar y, | 156 SkScalar y, |
166 const PaintFlags& flags) = 0; | 157 const PaintFlags& flags) = 0; |
167 virtual void drawPosText(const void* text, | 158 virtual void drawPosText(const void* text, |
168 size_t byte_length, | 159 size_t byte_length, |
169 const SkPoint pos[], | 160 const SkPoint pos[], |
170 const PaintFlags& flags) = 0; | 161 const PaintFlags& flags) = 0; |
171 virtual void drawTextBlob(const SkTextBlob* blob, | 162 virtual void drawTextBlob(sk_sp<SkTextBlob> blob, |
172 SkScalar x, | |
173 SkScalar y, | |
174 const PaintFlags& flags) = 0; | |
175 virtual void drawTextBlob(const sk_sp<SkTextBlob>& blob, | |
176 SkScalar x, | 163 SkScalar x, |
177 SkScalar y, | 164 SkScalar y, |
178 const PaintFlags& flags) = 0; | 165 const PaintFlags& flags) = 0; |
179 | 166 |
180 virtual void drawPicture(const PaintRecord* record) = 0; | 167 virtual void drawPicture(sk_sp<const PaintRecord> record, |
181 virtual void drawPicture(const PaintRecord* record, | |
182 const SkMatrix* matrix, | 168 const SkMatrix* matrix, |
183 const PaintFlags* flags) = 0; | 169 const PaintFlags* flags) = 0; |
184 virtual void drawPicture(sk_sp<PaintRecord> record) = 0; | 170 void drawPicture(sk_sp<const PaintRecord> record) { |
| 171 drawPicture(record, nullptr, nullptr); |
| 172 } |
185 | 173 |
186 virtual bool isClipEmpty() const = 0; | 174 virtual bool isClipEmpty() const = 0; |
187 virtual bool isClipRect() const = 0; | 175 virtual bool isClipRect() const = 0; |
188 virtual const SkMatrix& getTotalMatrix() const = 0; | 176 virtual const SkMatrix& getTotalMatrix() const = 0; |
189 | 177 |
190 // For GraphicsContextCanvas only. Maybe this could be rewritten? | 178 // For GraphicsContextCanvas only. Maybe this could be rewritten? |
191 virtual void temporary_internal_describeTopLayer(SkMatrix* matrix, | 179 virtual void temporary_internal_describeTopLayer(SkMatrix* matrix, |
192 SkIRect* clip_bounds) = 0; | 180 SkIRect* clip_bounds) = 0; |
193 | 181 |
194 virtual bool ToPixmap(SkPixmap* output) = 0; | 182 virtual bool ToPixmap(SkPixmap* output) = 0; |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
266 const SkPoint& point, | 254 const SkPoint& point, |
267 SkData* data); | 255 SkData* data); |
268 | 256 |
269 CC_PAINT_EXPORT void PaintCanvasAnnotateLinkToDestination(PaintCanvas* canvas, | 257 CC_PAINT_EXPORT void PaintCanvasAnnotateLinkToDestination(PaintCanvas* canvas, |
270 const SkRect& rect, | 258 const SkRect& rect, |
271 SkData* data); | 259 SkData* data); |
272 | 260 |
273 } // namespace cc | 261 } // namespace cc |
274 | 262 |
275 #endif // CC_PAINT_PAINT_CANVAS_H_ | 263 #endif // CC_PAINT_PAINT_CANVAS_H_ |
OLD | NEW |