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 #include "cc/paint/paint_op_buffer.h" | 5 #include "cc/paint/paint_op_buffer.h" |
6 | 6 |
7 #include "base/containers/stack_container.h" | 7 #include "base/containers/stack_container.h" |
8 #include "cc/paint/display_item_list.h" | 8 #include "cc/paint/display_item_list.h" |
9 #include "cc/paint/paint_record.h" | 9 #include "cc/paint/paint_record.h" |
10 #include "third_party/skia/include/core/SkAnnotation.h" | 10 #include "third_party/skia/include/core/SkAnnotation.h" |
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
187 #undef M | 187 #undef M |
188 | 188 |
189 #undef TYPES | 189 #undef TYPES |
190 | 190 |
191 SkRect PaintOp::kUnsetRect = {SK_ScalarInfinity, 0, 0, 0}; | 191 SkRect PaintOp::kUnsetRect = {SK_ScalarInfinity, 0, 0, 0}; |
192 | 192 |
193 void AnnotateOp::Raster(const PaintOp* base_op, | 193 void AnnotateOp::Raster(const PaintOp* base_op, |
194 SkCanvas* canvas, | 194 SkCanvas* canvas, |
195 const SkMatrix& original_ctm) { | 195 const SkMatrix& original_ctm) { |
196 auto* op = static_cast<const AnnotateOp*>(base_op); | 196 auto* op = static_cast<const AnnotateOp*>(base_op); |
197 switch (op->annotation_type) { | 197 switch (static_cast<PaintCanvas::AnnotationType>(op->annotation_type)) { |
198 case PaintCanvas::AnnotationType::URL: | 198 case PaintCanvas::AnnotationType::URL: |
199 SkAnnotateRectWithURL(canvas, op->rect, op->data.get()); | 199 SkAnnotateRectWithURL(canvas, op->rect, op->data.get()); |
200 break; | 200 break; |
201 case PaintCanvas::AnnotationType::LINK_TO_DESTINATION: | 201 case PaintCanvas::AnnotationType::LINK_TO_DESTINATION: |
202 SkAnnotateLinkToDestination(canvas, op->rect, op->data.get()); | 202 SkAnnotateLinkToDestination(canvas, op->rect, op->data.get()); |
203 break; | 203 break; |
204 case PaintCanvas::AnnotationType::NAMED_DESTINATION: { | 204 case PaintCanvas::AnnotationType::NAMED_DESTINATION: { |
205 SkPoint point = SkPoint::Make(op->rect.x(), op->rect.y()); | 205 SkPoint point = SkPoint::Make(op->rect.x(), op->rect.y()); |
206 SkAnnotateNamedDestination(canvas, point, op->data.get()); | 206 SkAnnotateNamedDestination(canvas, point, op->data.get()); |
207 break; | 207 break; |
208 } | 208 } |
209 } | 209 } |
210 } | 210 } |
211 | 211 |
212 void ClipPathOp::Raster(const PaintOp* base_op, | 212 void ClipPathOp::Raster(const PaintOp* base_op, |
213 SkCanvas* canvas, | 213 SkCanvas* canvas, |
214 const SkMatrix& original_ctm) { | 214 const SkMatrix& original_ctm) { |
215 auto* op = static_cast<const ClipPathOp*>(base_op); | 215 auto* op = static_cast<const ClipPathOp*>(base_op); |
216 canvas->clipPath(op->path, op->op, op->antialias); | 216 canvas->clipPath(op->path, static_cast<SkClipOp>(op->op), op->antialias); |
217 } | 217 } |
218 | 218 |
219 void ClipRectOp::Raster(const PaintOp* base_op, | 219 void ClipRectOp::Raster(const PaintOp* base_op, |
220 SkCanvas* canvas, | 220 SkCanvas* canvas, |
221 const SkMatrix& original_ctm) { | 221 const SkMatrix& original_ctm) { |
222 auto* op = static_cast<const ClipRectOp*>(base_op); | 222 auto* op = static_cast<const ClipRectOp*>(base_op); |
223 canvas->clipRect(op->rect, op->op, op->antialias); | 223 canvas->clipRect(op->rect, static_cast<SkClipOp>(op->op), op->antialias); |
224 } | 224 } |
225 | 225 |
226 void ClipRRectOp::Raster(const PaintOp* base_op, | 226 void ClipRRectOp::Raster(const PaintOp* base_op, |
227 SkCanvas* canvas, | 227 SkCanvas* canvas, |
228 const SkMatrix& original_ctm) { | 228 const SkMatrix& original_ctm) { |
229 auto* op = static_cast<const ClipRRectOp*>(base_op); | 229 auto* op = static_cast<const ClipRRectOp*>(base_op); |
230 canvas->clipRRect(op->rrect, op->op, op->antialias); | 230 canvas->clipRRect(op->rrect, static_cast<SkClipOp>(op->op), op->antialias); |
231 } | 231 } |
232 | 232 |
233 void ConcatOp::Raster(const PaintOp* base_op, | 233 void ConcatOp::Raster(const PaintOp* base_op, |
234 SkCanvas* canvas, | 234 SkCanvas* canvas, |
235 const SkMatrix& original_ctm) { | 235 const SkMatrix& original_ctm) { |
236 auto* op = static_cast<const ConcatOp*>(base_op); | 236 auto* op = static_cast<const ConcatOp*>(base_op); |
237 canvas->concat(op->matrix); | 237 canvas->concat(op->matrix); |
238 } | 238 } |
239 | 239 |
240 void DrawArcOp::RasterWithFlags(const PaintOpWithFlags* base_op, | 240 void DrawArcOp::RasterWithFlags(const PaintOpWithFlags* base_op, |
(...skipping 10 matching lines...) Expand all Loading... |
251 SkCanvas* canvas, | 251 SkCanvas* canvas, |
252 const SkMatrix& original_ctm) { | 252 const SkMatrix& original_ctm) { |
253 auto* op = static_cast<const DrawCircleOp*>(base_op); | 253 auto* op = static_cast<const DrawCircleOp*>(base_op); |
254 canvas->drawCircle(op->cx, op->cy, op->radius, ToSkPaint(*flags)); | 254 canvas->drawCircle(op->cx, op->cy, op->radius, ToSkPaint(*flags)); |
255 } | 255 } |
256 | 256 |
257 void DrawColorOp::Raster(const PaintOp* base_op, | 257 void DrawColorOp::Raster(const PaintOp* base_op, |
258 SkCanvas* canvas, | 258 SkCanvas* canvas, |
259 const SkMatrix& original_ctm) { | 259 const SkMatrix& original_ctm) { |
260 auto* op = static_cast<const DrawColorOp*>(base_op); | 260 auto* op = static_cast<const DrawColorOp*>(base_op); |
261 canvas->drawColor(op->color, op->mode); | 261 canvas->drawColor(static_cast<SkColor>(op->color), |
| 262 static_cast<SkBlendMode>(op->mode)); |
262 } | 263 } |
263 | 264 |
264 void DrawDisplayItemListOp::Raster(const PaintOp* base_op, | 265 void DrawDisplayItemListOp::Raster(const PaintOp* base_op, |
265 SkCanvas* canvas, | 266 SkCanvas* canvas, |
266 const SkMatrix& original_ctm) { | 267 const SkMatrix& original_ctm) { |
267 auto* op = static_cast<const DrawDisplayItemListOp*>(base_op); | 268 auto* op = static_cast<const DrawDisplayItemListOp*>(base_op); |
268 op->list->Raster(canvas); | 269 op->list->Raster(canvas); |
269 } | 270 } |
270 | 271 |
271 void DrawDRRectOp::RasterWithFlags(const PaintOpWithFlags* base_op, | 272 void DrawDRRectOp::RasterWithFlags(const PaintOpWithFlags* base_op, |
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
489 } | 490 } |
490 } | 491 } |
491 | 492 |
492 int DrawRecordOp::CountSlowPaths() const { | 493 int DrawRecordOp::CountSlowPaths() const { |
493 return record->numSlowPaths(); | 494 return record->numSlowPaths(); |
494 } | 495 } |
495 | 496 |
496 AnnotateOp::AnnotateOp(PaintCanvas::AnnotationType annotation_type, | 497 AnnotateOp::AnnotateOp(PaintCanvas::AnnotationType annotation_type, |
497 const SkRect& rect, | 498 const SkRect& rect, |
498 sk_sp<SkData> data) | 499 sk_sp<SkData> data) |
499 : annotation_type(annotation_type), rect(rect), data(std::move(data)) {} | 500 : annotation_type(static_cast<uint8_t>(annotation_type)), |
| 501 rect(rect), |
| 502 data(std::move(data)) {} |
500 | 503 |
501 AnnotateOp::~AnnotateOp() = default; | 504 AnnotateOp::~AnnotateOp() = default; |
502 | 505 |
503 DrawDisplayItemListOp::DrawDisplayItemListOp( | 506 DrawDisplayItemListOp::DrawDisplayItemListOp( |
504 scoped_refptr<DisplayItemList> list) | 507 scoped_refptr<DisplayItemList> list) |
505 : list(list) {} | 508 : list(list) {} |
506 | 509 |
507 size_t DrawDisplayItemListOp::AdditionalBytesUsed() const { | 510 size_t DrawDisplayItemListOp::AdditionalBytesUsed() const { |
508 return list->ApproximateMemoryUsage(); | 511 return list->ApproximateMemoryUsage(); |
509 } | 512 } |
(...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
735 return std::make_pair(op, skip); | 738 return std::make_pair(op, skip); |
736 } | 739 } |
737 | 740 |
738 void PaintOpBuffer::ShrinkToFit() { | 741 void PaintOpBuffer::ShrinkToFit() { |
739 if (!used_ || used_ == reserved_) | 742 if (!used_ || used_ == reserved_) |
740 return; | 743 return; |
741 ReallocBuffer(used_); | 744 ReallocBuffer(used_); |
742 } | 745 } |
743 | 746 |
744 } // namespace cc | 747 } // namespace cc |
OLD | NEW |