Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(133)

Side by Side Diff: cc/paint/paint_op_buffer.cc

Issue 2899483002: cc: Audit and static_assert the types in PaintOpBuffer can be moved.
Patch Set: check-copy better-better-comment Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698