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

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

Issue 2355483002: abstract name of clipping ops, to transtion to a more restricted set (Closed)
Patch Set: remove setClipRegion entirely Created 4 years, 3 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 /* 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 "SkCanvas.h" 8 #include "SkCanvas.h"
9 #include "SkPatchUtils.h" 9 #include "SkPatchUtils.h"
10 #include "SkPictureData.h" 10 #include "SkPictureData.h"
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
119 SkCanvas* canvas, 119 SkCanvas* canvas,
120 const SkMatrix& initialMatrix) { 120 const SkMatrix& initialMatrix) {
121 switch (op) { 121 switch (op) {
122 case NOOP: { 122 case NOOP: {
123 SkASSERT(size >= 4); 123 SkASSERT(size >= 4);
124 reader->skip(size - 4); 124 reader->skip(size - 4);
125 } break; 125 } break;
126 case CLIP_PATH: { 126 case CLIP_PATH: {
127 const SkPath& path = fPictureData->getPath(reader); 127 const SkPath& path = fPictureData->getPath(reader);
128 uint32_t packed = reader->readInt(); 128 uint32_t packed = reader->readInt();
129 SkRegion::Op regionOp = ClipParams_unpackRegionOp(packed); 129 SkCanvas::ClipOp clipOp = ClipParams_unpackRegionOp(packed);
130 bool doAA = ClipParams_unpackDoAA(packed); 130 bool doAA = ClipParams_unpackDoAA(packed);
131 size_t offsetToRestore = reader->readInt(); 131 size_t offsetToRestore = reader->readInt();
132 SkASSERT(!offsetToRestore || offsetToRestore >= reader->offset()); 132 SkASSERT(!offsetToRestore || offsetToRestore >= reader->offset());
133 canvas->clipPath(path, regionOp, doAA); 133 canvas->clipPath(path, clipOp, doAA);
134 if (canvas->isClipEmpty() && offsetToRestore) { 134 if (canvas->isClipEmpty() && offsetToRestore) {
135 reader->skip(offsetToRestore - reader->offset()); 135 reader->skip(offsetToRestore - reader->offset());
136 } 136 }
137 } break; 137 } break;
138 case CLIP_REGION: { 138 case CLIP_REGION: {
139 SkRegion region; 139 SkRegion region;
140 reader->readRegion(&region); 140 reader->readRegion(&region);
141 uint32_t packed = reader->readInt(); 141 uint32_t packed = reader->readInt();
142 SkRegion::Op regionOp = ClipParams_unpackRegionOp(packed); 142 SkCanvas::ClipOp clipOp = ClipParams_unpackRegionOp(packed);
143 size_t offsetToRestore = reader->readInt(); 143 size_t offsetToRestore = reader->readInt();
144 SkASSERT(!offsetToRestore || offsetToRestore >= reader->offset()); 144 SkASSERT(!offsetToRestore || offsetToRestore >= reader->offset());
145 canvas->clipRegion(region, regionOp); 145 canvas->clipRegion(region, clipOp);
146 if (canvas->isClipEmpty() && offsetToRestore) { 146 if (canvas->isClipEmpty() && offsetToRestore) {
147 reader->skip(offsetToRestore - reader->offset()); 147 reader->skip(offsetToRestore - reader->offset());
148 } 148 }
149 } break; 149 } break;
150 case CLIP_RECT: { 150 case CLIP_RECT: {
151 SkRect rect; 151 SkRect rect;
152 reader->readRect(&rect); 152 reader->readRect(&rect);
153 uint32_t packed = reader->readInt(); 153 uint32_t packed = reader->readInt();
154 SkRegion::Op regionOp = ClipParams_unpackRegionOp(packed); 154 SkCanvas::ClipOp clipOp = ClipParams_unpackRegionOp(packed);
155 bool doAA = ClipParams_unpackDoAA(packed); 155 bool doAA = ClipParams_unpackDoAA(packed);
156 size_t offsetToRestore = reader->readInt(); 156 size_t offsetToRestore = reader->readInt();
157 SkASSERT(!offsetToRestore || offsetToRestore >= reader->offset()); 157 SkASSERT(!offsetToRestore || offsetToRestore >= reader->offset());
158 canvas->clipRect(rect, regionOp, doAA); 158 canvas->clipRect(rect, clipOp, doAA);
159 if (canvas->isClipEmpty() && offsetToRestore) { 159 if (canvas->isClipEmpty() && offsetToRestore) {
160 reader->skip(offsetToRestore - reader->offset()); 160 reader->skip(offsetToRestore - reader->offset());
161 } 161 }
162 } break; 162 } break;
163 case CLIP_RRECT: { 163 case CLIP_RRECT: {
164 SkRRect rrect; 164 SkRRect rrect;
165 reader->readRRect(&rrect); 165 reader->readRRect(&rrect);
166 uint32_t packed = reader->readInt(); 166 uint32_t packed = reader->readInt();
167 SkRegion::Op regionOp = ClipParams_unpackRegionOp(packed); 167 SkCanvas::ClipOp clipOp = ClipParams_unpackRegionOp(packed);
168 bool doAA = ClipParams_unpackDoAA(packed); 168 bool doAA = ClipParams_unpackDoAA(packed);
169 size_t offsetToRestore = reader->readInt(); 169 size_t offsetToRestore = reader->readInt();
170 SkASSERT(!offsetToRestore || offsetToRestore >= reader->offset()); 170 SkASSERT(!offsetToRestore || offsetToRestore >= reader->offset());
171 canvas->clipRRect(rrect, regionOp, doAA); 171 canvas->clipRRect(rrect, clipOp, doAA);
172 if (canvas->isClipEmpty() && offsetToRestore) { 172 if (canvas->isClipEmpty() && offsetToRestore) {
173 reader->skip(offsetToRestore - reader->offset()); 173 reader->skip(offsetToRestore - reader->offset());
174 } 174 }
175 } break; 175 } break;
176 case PUSH_CULL: break; // Deprecated, safe to ignore both push and pop. 176 case PUSH_CULL: break; // Deprecated, safe to ignore both push and pop.
177 case POP_CULL: break; 177 case POP_CULL: break;
178 case CONCAT: { 178 case CONCAT: {
179 SkMatrix matrix; 179 SkMatrix matrix;
180 reader->readMatrix(&matrix); 180 reader->readMatrix(&matrix);
181 canvas->concat(matrix); 181 canvas->concat(matrix);
(...skipping 478 matching lines...) Expand 10 before | Expand all | Expand 10 after
660 case TRANSLATE_Z: { 660 case TRANSLATE_Z: {
661 #ifdef SK_EXPERIMENTAL_SHADOWING 661 #ifdef SK_EXPERIMENTAL_SHADOWING
662 SkScalar dz = reader->readScalar(); 662 SkScalar dz = reader->readScalar();
663 canvas->translateZ(dz); 663 canvas->translateZ(dz);
664 #endif 664 #endif
665 } break; 665 } break;
666 default: 666 default:
667 SkASSERTF(false, "Unknown draw type: %d", op); 667 SkASSERTF(false, "Unknown draw type: %d", op);
668 } 668 }
669 } 669 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698