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

Side by Side Diff: tools/debugger/SkDrawCommand.cpp

Issue 2167223002: Revert of Creating framework for drawShadowedPicture (Closed) Base URL: https://skia.googlesource.com/skia@master
Patch Set: Created 4 years, 5 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
« no previous file with comments | « tools/debugger/SkDrawCommand.h ('k') | no next file » | 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 2012 Google Inc. 2 * Copyright 2012 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 "SkDrawCommand.h" 8 #include "SkDrawCommand.h"
9 9
10 #include "SkBlurMaskFilter.h" 10 #include "SkBlurMaskFilter.h"
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after
173 , fVisible(true) { 173 , fVisible(true) {
174 } 174 }
175 175
176 SkDrawCommand::~SkDrawCommand() { 176 SkDrawCommand::~SkDrawCommand() {
177 fInfo.deleteAll(); 177 fInfo.deleteAll();
178 } 178 }
179 179
180 const char* SkDrawCommand::GetCommandString(OpType type) { 180 const char* SkDrawCommand::GetCommandString(OpType type) {
181 switch (type) { 181 switch (type) {
182 case kBeginDrawPicture_OpType: return "BeginDrawPicture"; 182 case kBeginDrawPicture_OpType: return "BeginDrawPicture";
183 case kBeginDrawShadowedPicture_OpType: return "BeginDrawShadowedPicture" ;
184 case kClipPath_OpType: return "ClipPath"; 183 case kClipPath_OpType: return "ClipPath";
185 case kClipRegion_OpType: return "ClipRegion"; 184 case kClipRegion_OpType: return "ClipRegion";
186 case kClipRect_OpType: return "ClipRect"; 185 case kClipRect_OpType: return "ClipRect";
187 case kClipRRect_OpType: return "ClipRRect"; 186 case kClipRRect_OpType: return "ClipRRect";
188 case kConcat_OpType: return "Concat"; 187 case kConcat_OpType: return "Concat";
189 case kDrawAnnotation_OpType: return "DrawAnnotation"; 188 case kDrawAnnotation_OpType: return "DrawAnnotation";
190 case kDrawBitmap_OpType: return "DrawBitmap"; 189 case kDrawBitmap_OpType: return "DrawBitmap";
191 case kDrawBitmapNine_OpType: return "DrawBitmapNine"; 190 case kDrawBitmapNine_OpType: return "DrawBitmapNine";
192 case kDrawBitmapRect_OpType: return "DrawBitmapRect"; 191 case kDrawBitmapRect_OpType: return "DrawBitmapRect";
193 case kDrawClear_OpType: return "DrawClear"; 192 case kDrawClear_OpType: return "DrawClear";
194 case kDrawDRRect_OpType: return "DrawDRRect"; 193 case kDrawDRRect_OpType: return "DrawDRRect";
195 case kDrawImage_OpType: return "DrawImage"; 194 case kDrawImage_OpType: return "DrawImage";
196 case kDrawImageRect_OpType: return "DrawImageRect"; 195 case kDrawImageRect_OpType: return "DrawImageRect";
197 case kDrawOval_OpType: return "DrawOval"; 196 case kDrawOval_OpType: return "DrawOval";
198 case kDrawPaint_OpType: return "DrawPaint"; 197 case kDrawPaint_OpType: return "DrawPaint";
199 case kDrawPatch_OpType: return "DrawPatch"; 198 case kDrawPatch_OpType: return "DrawPatch";
200 case kDrawPath_OpType: return "DrawPath"; 199 case kDrawPath_OpType: return "DrawPath";
201 case kDrawPoints_OpType: return "DrawPoints"; 200 case kDrawPoints_OpType: return "DrawPoints";
202 case kDrawPosText_OpType: return "DrawPosText"; 201 case kDrawPosText_OpType: return "DrawPosText";
203 case kDrawPosTextH_OpType: return "DrawPosTextH"; 202 case kDrawPosTextH_OpType: return "DrawPosTextH";
204 case kDrawRect_OpType: return "DrawRect"; 203 case kDrawRect_OpType: return "DrawRect";
205 case kDrawRRect_OpType: return "DrawRRect"; 204 case kDrawRRect_OpType: return "DrawRRect";
206 case kDrawText_OpType: return "DrawText"; 205 case kDrawText_OpType: return "DrawText";
207 case kDrawTextBlob_OpType: return "DrawTextBlob"; 206 case kDrawTextBlob_OpType: return "DrawTextBlob";
208 case kDrawTextOnPath_OpType: return "DrawTextOnPath"; 207 case kDrawTextOnPath_OpType: return "DrawTextOnPath";
209 case kDrawTextRSXform_OpType: return "DrawTextRSXform"; 208 case kDrawTextRSXform_OpType: return "DrawTextRSXform";
210 case kDrawVertices_OpType: return "DrawVertices"; 209 case kDrawVertices_OpType: return "DrawVertices";
211 case kEndDrawPicture_OpType: return "EndDrawPicture"; 210 case kEndDrawPicture_OpType: return "EndDrawPicture";
212 case kEndDrawShadowedPicture_OpType: return "EndDrawShadowedPicture";
213 case kRestore_OpType: return "Restore"; 211 case kRestore_OpType: return "Restore";
214 case kSave_OpType: return "Save"; 212 case kSave_OpType: return "Save";
215 case kSaveLayer_OpType: return "SaveLayer"; 213 case kSaveLayer_OpType: return "SaveLayer";
216 case kSetMatrix_OpType: return "SetMatrix"; 214 case kSetMatrix_OpType: return "SetMatrix";
217 case kTranslateZ_OpType: return "TranslateZ"; 215 case kTranslateZ_OpType: return "TranslateZ";
218 default: 216 default:
219 SkDebugf("OpType error 0x%08x\n", type); 217 SkDebugf("OpType error 0x%08x\n", type);
220 SkASSERT(0); 218 SkASSERT(0);
221 break; 219 break;
222 } 220 }
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
265 INSTALL_FACTORY(DrawTextRSXform); 263 INSTALL_FACTORY(DrawTextRSXform);
266 INSTALL_FACTORY(DrawTextBlob); 264 INSTALL_FACTORY(DrawTextBlob);
267 265
268 INSTALL_FACTORY(DrawRect); 266 INSTALL_FACTORY(DrawRect);
269 INSTALL_FACTORY(DrawRRect); 267 INSTALL_FACTORY(DrawRRect);
270 INSTALL_FACTORY(DrawDRRect); 268 INSTALL_FACTORY(DrawDRRect);
271 INSTALL_FACTORY(DrawPatch); 269 INSTALL_FACTORY(DrawPatch);
272 INSTALL_FACTORY(Save); 270 INSTALL_FACTORY(Save);
273 INSTALL_FACTORY(SaveLayer); 271 INSTALL_FACTORY(SaveLayer);
274 INSTALL_FACTORY(SetMatrix); 272 INSTALL_FACTORY(SetMatrix);
275 #ifdef SK_EXPERIMENTAL_SHADOWING 273
276 INSTALL_FACTORY(TranslateZ); 274 INSTALL_FACTORY(TranslateZ);
277 #endif
278 } 275 }
279 SkString name = SkString(command[SKDEBUGCANVAS_ATTRIBUTE_COMMAND].asCString( )); 276 SkString name = SkString(command[SKDEBUGCANVAS_ATTRIBUTE_COMMAND].asCString( ));
280 FROM_JSON* factory = factories.find(name); 277 FROM_JSON* factory = factories.find(name);
281 if (factory == nullptr) { 278 if (factory == nullptr) {
282 SkDebugf("no JSON factory for '%s'\n", name.c_str()); 279 SkDebugf("no JSON factory for '%s'\n", name.c_str());
283 return nullptr; 280 return nullptr;
284 } 281 }
285 return (*factory)(command, urlDataManager); 282 return (*factory)(command, urlDataManager);
286 } 283 }
287 284
(...skipping 1199 matching lines...) Expand 10 before | Expand all | Expand 10 after
1487 1484
1488 static void extract_json_matrix(Json::Value& matrix, SkMatrix* result) { 1485 static void extract_json_matrix(Json::Value& matrix, SkMatrix* result) {
1489 SkScalar values[] = { 1486 SkScalar values[] = {
1490 matrix[0][0].asFloat(), matrix[0][1].asFloat(), matrix[0][2].asFloat(), 1487 matrix[0][0].asFloat(), matrix[0][1].asFloat(), matrix[0][2].asFloat(),
1491 matrix[1][0].asFloat(), matrix[1][1].asFloat(), matrix[1][2].asFloat(), 1488 matrix[1][0].asFloat(), matrix[1][1].asFloat(), matrix[1][2].asFloat(),
1492 matrix[2][0].asFloat(), matrix[2][1].asFloat(), matrix[2][2].asFloat() 1489 matrix[2][0].asFloat(), matrix[2][1].asFloat(), matrix[2][2].asFloat()
1493 }; 1490 };
1494 result->set9(values); 1491 result->set9(values);
1495 } 1492 }
1496 1493
1497 #ifdef SK_EXPERIMENTAL_SHADOWING
1498 // somehow this is only used in shadows...
1499 static void extract_json_scalar(Json::Value& scalar, SkScalar* result) { 1494 static void extract_json_scalar(Json::Value& scalar, SkScalar* result) {
1500 SkScalar value = scalar.asFloat(); 1495 SkScalar value = scalar.asFloat();
1501 *result = value; 1496 *result = value;
1502 } 1497 }
1503 #endif
1504 1498
1505 static void extract_json_path(Json::Value& path, SkPath* result) { 1499 static void extract_json_path(Json::Value& path, SkPath* result) {
1506 const char* fillType = path[SKDEBUGCANVAS_ATTRIBUTE_FILLTYPE].asCString(); 1500 const char* fillType = path[SKDEBUGCANVAS_ATTRIBUTE_FILLTYPE].asCString();
1507 if (!strcmp(fillType, SKDEBUGCANVAS_FILLTYPE_WINDING)) { 1501 if (!strcmp(fillType, SKDEBUGCANVAS_FILLTYPE_WINDING)) {
1508 result->setFillType(SkPath::kWinding_FillType); 1502 result->setFillType(SkPath::kWinding_FillType);
1509 } 1503 }
1510 else if (!strcmp(fillType, SKDEBUGCANVAS_FILLTYPE_EVENODD)) { 1504 else if (!strcmp(fillType, SKDEBUGCANVAS_FILLTYPE_EVENODD)) {
1511 result->setFillType(SkPath::kEvenOdd_FillType); 1505 result->setFillType(SkPath::kEvenOdd_FillType);
1512 } 1506 }
1513 else if (!strcmp(fillType, SKDEBUGCANVAS_FILLTYPE_INVERSEWINDING)) { 1507 else if (!strcmp(fillType, SKDEBUGCANVAS_FILLTYPE_INVERSEWINDING)) {
(...skipping 866 matching lines...) Expand 10 before | Expand all | Expand 10 after
2380 2374
2381 SkEndDrawPictureCommand::SkEndDrawPictureCommand(bool restore) 2375 SkEndDrawPictureCommand::SkEndDrawPictureCommand(bool restore)
2382 : INHERITED(kEndDrawPicture_OpType) , fRestore(restore) { } 2376 : INHERITED(kEndDrawPicture_OpType) , fRestore(restore) { }
2383 2377
2384 void SkEndDrawPictureCommand::execute(SkCanvas* canvas) const { 2378 void SkEndDrawPictureCommand::execute(SkCanvas* canvas) const {
2385 if (fRestore) { 2379 if (fRestore) {
2386 canvas->restore(); 2380 canvas->restore();
2387 } 2381 }
2388 } 2382 }
2389 2383
2390 SkBeginDrawShadowedPictureCommand::SkBeginDrawShadowedPictureCommand(const SkPic ture* picture,
2391 const SkMat rix* matrix,
2392 const SkPai nt* paint)
2393 : INHERITED(kBeginDrawShadowedPicture_OpType)
2394 , fPicture(SkRef(picture)) {
2395
2396 SkString* str = new SkString;
2397 str->appendf("SkPicture: L: %f T: %f R: %f B: %f",
2398 picture->cullRect().fLeft, picture->cullRect().fTop,
2399 picture->cullRect().fRight, picture->cullRect().fBottom);
2400 fInfo.push(str);
2401
2402 if (matrix) {
2403 fMatrix.set(*matrix);
2404 fInfo.push(SkObjectParser::MatrixToString(*matrix));
2405 }
2406
2407 if (paint) {
2408 fPaint.set(*paint);
2409 fInfo.push(SkObjectParser::PaintToString(*paint));
2410 }
2411 }
2412
2413 void SkBeginDrawShadowedPictureCommand::execute(SkCanvas* canvas) const {
2414 if (fPaint.isValid()) {
2415 SkRect bounds = fPicture->cullRect();
2416 if (fMatrix.isValid()) {
2417 fMatrix.get()->mapRect(&bounds);
2418 }
2419 canvas->saveLayer(&bounds, fPaint.get());
2420 }
2421
2422 if (fMatrix.isValid()) {
2423 if (!fPaint.isValid()) {
2424 canvas->save();
2425 }
2426 canvas->concat(*fMatrix.get());
2427 }
2428 }
2429
2430 bool SkBeginDrawShadowedPictureCommand::render(SkCanvas* canvas) const {
2431 canvas->clear(0xFFFFFFFF);
2432 canvas->save();
2433
2434 xlate_and_scale_to_bounds(canvas, fPicture->cullRect());
2435
2436 canvas->drawPicture(fPicture.get());
2437
2438 canvas->restore();
2439
2440 return true;
2441 }
2442
2443 SkEndDrawShadowedPictureCommand::SkEndDrawShadowedPictureCommand(bool restore)
2444 : INHERITED(kEndDrawShadowedPicture_OpType) , fRestore(restore) { }
2445
2446 void SkEndDrawShadowedPictureCommand::execute(SkCanvas* canvas) const {
2447 if (fRestore) {
2448 canvas->restore();
2449 }
2450 }
2451
2452 SkDrawPointsCommand::SkDrawPointsCommand(SkCanvas::PointMode mode, size_t count, 2384 SkDrawPointsCommand::SkDrawPointsCommand(SkCanvas::PointMode mode, size_t count,
2453 const SkPoint pts[], const SkPaint& pai nt) 2385 const SkPoint pts[], const SkPaint& pai nt)
2454 : INHERITED(kDrawPoints_OpType) { 2386 : INHERITED(kDrawPoints_OpType) {
2455 fMode = mode; 2387 fMode = mode;
2456 fCount = count; 2388 fCount = count;
2457 fPts = new SkPoint[count]; 2389 fPts = new SkPoint[count];
2458 memcpy(fPts, pts, count * sizeof(SkPoint)); 2390 memcpy(fPts, pts, count * sizeof(SkPoint));
2459 fPaint = paint; 2391 fPaint = paint;
2460 2392
2461 fInfo.push(SkObjectParser::PointsToString(pts, count)); 2393 fInfo.push(SkObjectParser::PointsToString(pts, count));
(...skipping 916 matching lines...) Expand 10 before | Expand all | Expand 10 after
3378 return new SkSetMatrixCommand(matrix); 3310 return new SkSetMatrixCommand(matrix);
3379 } 3311 }
3380 3312
3381 SkTranslateZCommand::SkTranslateZCommand(SkScalar z) 3313 SkTranslateZCommand::SkTranslateZCommand(SkScalar z)
3382 : INHERITED(kTranslateZ_OpType) { 3314 : INHERITED(kTranslateZ_OpType) {
3383 fZTranslate = z; 3315 fZTranslate = z;
3384 fInfo.push(SkObjectParser::ScalarToString(fZTranslate, "drawDepthTranslation ")); 3316 fInfo.push(SkObjectParser::ScalarToString(fZTranslate, "drawDepthTranslation "));
3385 } 3317 }
3386 3318
3387 void SkTranslateZCommand::execute(SkCanvas* canvas) const { 3319 void SkTranslateZCommand::execute(SkCanvas* canvas) const {
3388 #ifdef SK_EXPERIMENTAL_SHADOWING
3389 canvas->translateZ(fZTranslate); 3320 canvas->translateZ(fZTranslate);
3390 #endif
3391 } 3321 }
3392 3322
3393 Json::Value SkTranslateZCommand::toJSON(UrlDataManager& urlDataManager) const { 3323 Json::Value SkTranslateZCommand::toJSON(UrlDataManager& urlDataManager) const {
3394 Json::Value result = INHERITED::toJSON(urlDataManager); 3324 Json::Value result = INHERITED::toJSON(urlDataManager);
3395 result[SKDEBUGCANVAS_ATTRIBUTE_DRAWDEPTHTRANS] = MakeJsonScalar(fZTranslate) ; 3325 result[SKDEBUGCANVAS_ATTRIBUTE_DRAWDEPTHTRANS] = MakeJsonScalar(fZTranslate) ;
3396 return result; 3326 return result;
3397 } 3327 }
3398 3328
3399 SkTranslateZCommand* SkTranslateZCommand::fromJSON(Json::Value& command, 3329 SkTranslateZCommand* SkTranslateZCommand::fromJSON(Json::Value& command,
3400 UrlDataManager& urlDataManager) { 3330 UrlDataManager& urlDataManager) {
3401 SkScalar z; 3331 SkScalar z;
3402 #ifdef SK_EXPERIMENTAL_SHADOWING
3403 extract_json_scalar(command[SKDEBUGCANVAS_ATTRIBUTE_DRAWDEPTHTRANS], &z); 3332 extract_json_scalar(command[SKDEBUGCANVAS_ATTRIBUTE_DRAWDEPTHTRANS], &z);
3404 #else
3405 z = 0;
3406 #endif
3407 return new SkTranslateZCommand(z); 3333 return new SkTranslateZCommand(z);
3408 } 3334 }
OLDNEW
« no previous file with comments | « tools/debugger/SkDrawCommand.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698