OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2014 Google Inc. | 2 * Copyright 2014 Google Inc. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
6 */ | 6 */ |
7 | 7 |
8 #include "SkRecorder.h" | 8 #include "SkRecorder.h" |
9 #include "SkPatchUtils.h" | 9 #include "SkPatchUtils.h" |
10 #include "SkPicture.h" | 10 #include "SkPicture.h" |
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
109 return dst; | 109 return dst; |
110 } | 110 } |
111 | 111 |
112 // As above, assuming and copying a terminating \0. | 112 // As above, assuming and copying a terminating \0. |
113 template <> | 113 template <> |
114 char* SkRecorder::copy(const char* src) { | 114 char* SkRecorder::copy(const char* src) { |
115 return this->copy(src, strlen(src)+1); | 115 return this->copy(src, strlen(src)+1); |
116 } | 116 } |
117 | 117 |
118 | 118 |
119 void SkRecorder::drawPaint(const SkPaint& paint) { | 119 void SkRecorder::onDrawPaint(const SkPaint& paint) { |
120 APPEND(DrawPaint, delay_copy(paint)); | 120 APPEND(DrawPaint, delay_copy(paint)); |
121 } | 121 } |
122 | 122 |
123 void SkRecorder::drawPoints(PointMode mode, | 123 void SkRecorder::onDrawPoints(PointMode mode, |
124 size_t count, | 124 size_t count, |
125 const SkPoint pts[], | 125 const SkPoint pts[], |
126 const SkPaint& paint) { | 126 const SkPaint& paint) { |
127 APPEND(DrawPoints, delay_copy(paint), mode, SkToUInt(count), this->copy(pts,
count)); | 127 APPEND(DrawPoints, delay_copy(paint), mode, SkToUInt(count), this->copy(pts,
count)); |
128 } | 128 } |
129 | 129 |
130 void SkRecorder::drawRect(const SkRect& rect, const SkPaint& paint) { | 130 void SkRecorder::onDrawRect(const SkRect& rect, const SkPaint& paint) { |
131 APPEND(DrawRect, delay_copy(paint), rect); | 131 APPEND(DrawRect, delay_copy(paint), rect); |
132 } | 132 } |
133 | 133 |
134 void SkRecorder::drawOval(const SkRect& oval, const SkPaint& paint) { | 134 void SkRecorder::onDrawOval(const SkRect& oval, const SkPaint& paint) { |
135 APPEND(DrawOval, delay_copy(paint), oval); | 135 APPEND(DrawOval, delay_copy(paint), oval); |
136 } | 136 } |
137 | 137 |
138 void SkRecorder::drawRRect(const SkRRect& rrect, const SkPaint& paint) { | 138 void SkRecorder::onDrawRRect(const SkRRect& rrect, const SkPaint& paint) { |
139 APPEND(DrawRRect, delay_copy(paint), rrect); | 139 APPEND(DrawRRect, delay_copy(paint), rrect); |
140 } | 140 } |
141 | 141 |
142 void SkRecorder::onDrawDRRect(const SkRRect& outer, const SkRRect& inner, const
SkPaint& paint) { | 142 void SkRecorder::onDrawDRRect(const SkRRect& outer, const SkRRect& inner, const
SkPaint& paint) { |
143 APPEND(DrawDRRect, delay_copy(paint), outer, inner); | 143 APPEND(DrawDRRect, delay_copy(paint), outer, inner); |
144 } | 144 } |
145 | 145 |
146 void SkRecorder::onDrawDrawable(SkCanvasDrawable* drawable) { | 146 void SkRecorder::onDrawDrawable(SkCanvasDrawable* drawable) { |
147 if (!fDrawableList) { | 147 if (!fDrawableList) { |
148 fDrawableList.reset(SkNEW(SkCanvasDrawableList)); | 148 fDrawableList.reset(SkNEW(SkCanvasDrawableList)); |
149 } | 149 } |
150 fDrawableList->append(drawable); | 150 fDrawableList->append(drawable); |
151 APPEND(DrawDrawable, drawable->getBounds(), fDrawableList->count() - 1); | 151 APPEND(DrawDrawable, drawable->getBounds(), fDrawableList->count() - 1); |
152 } | 152 } |
153 | 153 |
154 void SkRecorder::drawPath(const SkPath& path, const SkPaint& paint) { | 154 void SkRecorder::onDrawPath(const SkPath& path, const SkPaint& paint) { |
155 APPEND(DrawPath, delay_copy(paint), delay_copy(path)); | 155 APPEND(DrawPath, delay_copy(paint), delay_copy(path)); |
156 } | 156 } |
157 | 157 |
158 void SkRecorder::drawBitmap(const SkBitmap& bitmap, | 158 void SkRecorder::onDrawBitmap(const SkBitmap& bitmap, |
159 SkScalar left, | 159 SkScalar left, |
160 SkScalar top, | 160 SkScalar top, |
161 const SkPaint* paint) { | 161 const SkPaint* paint) { |
162 APPEND(DrawBitmap, this->copy(paint), delay_copy(bitmap), left, top); | 162 APPEND(DrawBitmap, this->copy(paint), delay_copy(bitmap), left, top); |
163 } | 163 } |
164 | 164 |
165 void SkRecorder::drawBitmapRectToRect(const SkBitmap& bitmap, | 165 void SkRecorder::onDrawBitmapRect(const SkBitmap& bitmap, |
166 const SkRect* src, | 166 const SkRect* src, |
167 const SkRect& dst, | 167 const SkRect& dst, |
168 const SkPaint* paint, | 168 const SkPaint* paint, |
169 DrawBitmapRectFlags flags) { | 169 DrawBitmapRectFlags flags) { |
170 if (kBleed_DrawBitmapRectFlag == flags) { | 170 if (kBleed_DrawBitmapRectFlag == flags) { |
171 APPEND(DrawBitmapRectToRectBleed, | 171 APPEND(DrawBitmapRectToRectBleed, |
172 this->copy(paint), delay_copy(bitmap), this->copy(src), dst); | 172 this->copy(paint), delay_copy(bitmap), this->copy(src), dst); |
173 return; | 173 return; |
174 } | 174 } |
175 SkASSERT(kNone_DrawBitmapRectFlag == flags); | 175 SkASSERT(kNone_DrawBitmapRectFlag == flags); |
176 APPEND(DrawBitmapRectToRect, | 176 APPEND(DrawBitmapRectToRect, |
177 this->copy(paint), delay_copy(bitmap), this->copy(src), dst); | 177 this->copy(paint), delay_copy(bitmap), this->copy(src), dst); |
178 } | 178 } |
179 | 179 |
180 void SkRecorder::drawBitmapNine(const SkBitmap& bitmap, | 180 void SkRecorder::onDrawBitmapNine(const SkBitmap& bitmap, |
181 const SkIRect& center, | 181 const SkIRect& center, |
182 const SkRect& dst, | 182 const SkRect& dst, |
183 const SkPaint* paint) { | 183 const SkPaint* paint) { |
184 APPEND(DrawBitmapNine, this->copy(paint), delay_copy(bitmap), center, dst); | 184 APPEND(DrawBitmapNine, this->copy(paint), delay_copy(bitmap), center, dst); |
185 } | 185 } |
186 | 186 |
187 void SkRecorder::drawImage(const SkImage* image, SkScalar left, SkScalar top, | 187 void SkRecorder::onDrawImage(const SkImage* image, SkScalar left, SkScalar top, |
188 const SkPaint* paint) { | 188 const SkPaint* paint) { |
189 APPEND(DrawImage, this->copy(paint), image, left, top); | 189 APPEND(DrawImage, this->copy(paint), image, left, top); |
190 } | 190 } |
191 | 191 |
192 void SkRecorder::drawImageRect(const SkImage* image, const SkRect* src, | 192 void SkRecorder::onDrawImageRect(const SkImage* image, const SkRect* src, |
193 const SkRect& dst, | 193 const SkRect& dst, |
194 const SkPaint* paint) { | 194 const SkPaint* paint) { |
195 APPEND(DrawImageRect, this->copy(paint), image, this->copy(src), dst); | 195 APPEND(DrawImageRect, this->copy(paint), image, this->copy(src), dst); |
196 } | 196 } |
197 | 197 |
198 void SkRecorder::drawSprite(const SkBitmap& bitmap, int left, int top, const SkP
aint* paint) { | 198 void SkRecorder::onDrawSprite(const SkBitmap& bitmap, int left, int top, const S
kPaint* paint) { |
199 APPEND(DrawSprite, this->copy(paint), delay_copy(bitmap), left, top); | 199 APPEND(DrawSprite, this->copy(paint), delay_copy(bitmap), left, top); |
200 } | 200 } |
201 | 201 |
202 void SkRecorder::onDrawText(const void* text, size_t byteLength, | 202 void SkRecorder::onDrawText(const void* text, size_t byteLength, |
203 SkScalar x, SkScalar y, const SkPaint& paint) { | 203 SkScalar x, SkScalar y, const SkPaint& paint) { |
204 APPEND(DrawText, | 204 APPEND(DrawText, |
205 delay_copy(paint), this->copy((const char*)text, byteLength), byteLen
gth, x, y); | 205 delay_copy(paint), this->copy((const char*)text, byteLength), byteLen
gth, x, y); |
206 } | 206 } |
207 | 207 |
208 void SkRecorder::onDrawPosText(const void* text, size_t byteLength, | 208 void SkRecorder::onDrawPosText(const void* text, size_t byteLength, |
(...skipping 29 matching lines...) Expand all Loading... |
238 | 238 |
239 void SkRecorder::onDrawTextBlob(const SkTextBlob* blob, SkScalar x, SkScalar y, | 239 void SkRecorder::onDrawTextBlob(const SkTextBlob* blob, SkScalar x, SkScalar y, |
240 const SkPaint& paint) { | 240 const SkPaint& paint) { |
241 APPEND(DrawTextBlob, delay_copy(paint), blob, x, y); | 241 APPEND(DrawTextBlob, delay_copy(paint), blob, x, y); |
242 } | 242 } |
243 | 243 |
244 void SkRecorder::onDrawPicture(const SkPicture* pic, const SkMatrix* matrix, con
st SkPaint* paint) { | 244 void SkRecorder::onDrawPicture(const SkPicture* pic, const SkMatrix* matrix, con
st SkPaint* paint) { |
245 APPEND(DrawPicture, this->copy(paint), pic, matrix ? *matrix : SkMatrix::I()
); | 245 APPEND(DrawPicture, this->copy(paint), pic, matrix ? *matrix : SkMatrix::I()
); |
246 } | 246 } |
247 | 247 |
248 void SkRecorder::drawVertices(VertexMode vmode, | 248 void SkRecorder::onDrawVertices(VertexMode vmode, |
249 int vertexCount, const SkPoint vertices[], | 249 int vertexCount, const SkPoint vertices[], |
250 const SkPoint texs[], const SkColor colors[], | 250 const SkPoint texs[], const SkColor colors[], |
251 SkXfermode* xmode, | 251 SkXfermode* xmode, |
252 const uint16_t indices[], int indexCount, const Sk
Paint& paint) { | 252 const uint16_t indices[], int indexCount, const
SkPaint& paint) { |
253 APPEND(DrawVertices, delay_copy(paint), | 253 APPEND(DrawVertices, delay_copy(paint), |
254 vmode, | 254 vmode, |
255 vertexCount, | 255 vertexCount, |
256 this->copy(vertices, vertexCount), | 256 this->copy(vertices, vertexCount), |
257 texs ? this->copy(texs, vertexCount) : NULL, | 257 texs ? this->copy(texs, vertexCount) : NULL, |
258 colors ? this->copy(colors, vertexCount) : NULL, | 258 colors ? this->copy(colors, vertexCount) : NULL, |
259 xmode, | 259 xmode, |
260 this->copy(indices, indexCount), | 260 this->copy(indices, indexCount), |
261 indexCount); | 261 indexCount); |
262 } | 262 } |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
326 } | 326 } |
327 | 327 |
328 void SkRecorder::addComment(const char* key, const char* value) { | 328 void SkRecorder::addComment(const char* key, const char* value) { |
329 APPEND(AddComment, this->copy(key), this->copy(value)); | 329 APPEND(AddComment, this->copy(key), this->copy(value)); |
330 } | 330 } |
331 | 331 |
332 void SkRecorder::endCommentGroup() { | 332 void SkRecorder::endCommentGroup() { |
333 APPEND(EndCommentGroup); | 333 APPEND(EndCommentGroup); |
334 } | 334 } |
335 | 335 |
OLD | NEW |