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

Side by Side Diff: src/core/SkCanvas.cpp

Issue 2488523003: Make SkSmallAllocator obey the RAII invariants and be expandable (Closed)
Patch Set: Strip pointer to make correct type Created 4 years, 1 month 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
« no previous file with comments | « src/core/SkBlitter.cpp ('k') | src/core/SkDrawLooper.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2008 The Android Open Source Project 2 * Copyright 2008 The Android Open Source Project
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 "SkBitmapDevice.h" 8 #include "SkBitmapDevice.h"
9 #include "SkCanvas.h" 9 #include "SkCanvas.h"
10 #include "SkCanvasPriv.h" 10 #include "SkCanvasPriv.h"
(...skipping 478 matching lines...) Expand 10 before | Expand all | Expand 10 after
489 // Make rawBounds include all paint outsets except for those due to image filters. 489 // Make rawBounds include all paint outsets except for those due to image filters.
490 rawBounds = &apply_paint_to_bounds_sans_imagefilter(*fPaint, *ra wBounds, &storage); 490 rawBounds = &apply_paint_to_bounds_sans_imagefilter(*fPaint, *ra wBounds, &storage);
491 } 491 }
492 (void)canvas->internalSaveLayer(SkCanvas::SaveLayerRec(rawBounds, &t mp), 492 (void)canvas->internalSaveLayer(SkCanvas::SaveLayerRec(rawBounds, &t mp),
493 SkCanvas::kFullLayer_SaveLayerStrate gy); 493 SkCanvas::kFullLayer_SaveLayerStrate gy);
494 fTempLayerForImageFilter = true; 494 fTempLayerForImageFilter = true;
495 // we remove the imagefilter/xfermode inside doNext() 495 // we remove the imagefilter/xfermode inside doNext()
496 } 496 }
497 497
498 if (SkDrawLooper* looper = paint.getLooper()) { 498 if (SkDrawLooper* looper = paint.getLooper()) {
499 void* buffer = fLooperContextAllocator.reserveT<SkDrawLooper::Contex t>( 499 fLooperContext = fLooperContextAllocator.createWithIniter(
500 looper->contextSize()); 500 looper->contextSize(),
501 fLooperContext = looper->createContext(canvas, buffer); 501 [&](void* buffer) {
502 return looper->createContext(canvas, buffer);
503 });
502 fIsSimple = false; 504 fIsSimple = false;
503 } else { 505 } else {
504 fLooperContext = nullptr; 506 fLooperContext = nullptr;
505 // can we be marked as simple? 507 // can we be marked as simple?
506 fIsSimple = !fFilter && !fTempLayerForImageFilter; 508 fIsSimple = !fFilter && !fTempLayerForImageFilter;
507 } 509 }
508 } 510 }
509 511
510 ~AutoDrawLooper() { 512 ~AutoDrawLooper() {
511 if (fTempLayerForImageFilter) { 513 if (fTempLayerForImageFilter) {
(...skipping 2859 matching lines...) Expand 10 before | Expand all | Expand 10 after
3371 const SkCanvas::ClipOp SkCanvas::kXOR_Op; 3373 const SkCanvas::ClipOp SkCanvas::kXOR_Op;
3372 const SkCanvas::ClipOp SkCanvas::kReverseDifference_Op; 3374 const SkCanvas::ClipOp SkCanvas::kReverseDifference_Op;
3373 const SkCanvas::ClipOp SkCanvas::kReplace_Op; 3375 const SkCanvas::ClipOp SkCanvas::kReplace_Op;
3374 3376
3375 static_assert((int)SkRegion::kDifference_Op == (int)kDifference_SkClipOp , ""); 3377 static_assert((int)SkRegion::kDifference_Op == (int)kDifference_SkClipOp , "");
3376 static_assert((int)SkRegion::kIntersect_Op == (int)kIntersect_SkClipOp, ""); 3378 static_assert((int)SkRegion::kIntersect_Op == (int)kIntersect_SkClipOp, "");
3377 static_assert((int)SkRegion::kUnion_Op == (int)kUnion_SkClipOp, "") ; 3379 static_assert((int)SkRegion::kUnion_Op == (int)kUnion_SkClipOp, "") ;
3378 static_assert((int)SkRegion::kXOR_Op == (int)kXOR_SkClipOp, ""); 3380 static_assert((int)SkRegion::kXOR_Op == (int)kXOR_SkClipOp, "");
3379 static_assert((int)SkRegion::kReverseDifference_Op == (int)kReverseDifference_S kClipOp, ""); 3381 static_assert((int)SkRegion::kReverseDifference_Op == (int)kReverseDifference_S kClipOp, "");
3380 static_assert((int)SkRegion::kReplace_Op == (int)kReplace_SkClipOp, " "); 3382 static_assert((int)SkRegion::kReplace_Op == (int)kReplace_SkClipOp, " ");
OLDNEW
« no previous file with comments | « src/core/SkBlitter.cpp ('k') | src/core/SkDrawLooper.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698