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

Side by Side Diff: gm/optimizations.cpp

Issue 238273012: Staged removal of SkPicture-derived classes (Closed) Base URL: http://skia.googlecode.com/svn/trunk/
Patch Set: have SkPicture only friend SkPictureRecorder once Created 6 years, 8 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 | Annotate | Revision Log
« no previous file with comments | « gm/gmmain.cpp ('k') | gm/pathopsskpclip.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 2013 Google Inc. 2 * Copyright 2013 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 "gm.h" 8 #include "gm.h"
9 #include "SkDebugCanvas.h" 9 #include "SkDebugCanvas.h"
10 #include "SkPictureFlat.h" 10 #include "SkPictureFlat.h"
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
74 (*postOptPattern)[1] = SAVE; 74 (*postOptPattern)[1] = SAVE;
75 (*postOptPattern)[2] = SAVE_LAYER; 75 (*postOptPattern)[2] = SAVE_LAYER;
76 (*postOptPattern)[3] = DRAW_BITMAP_RECT_TO_RECT; 76 (*postOptPattern)[3] = DRAW_BITMAP_RECT_TO_RECT;
77 (*postOptPattern)[4] = RESTORE; 77 (*postOptPattern)[4] = RESTORE;
78 (*postOptPattern)[5] = RESTORE; 78 (*postOptPattern)[5] = RESTORE;
79 (*postOptPattern)[6] = RESTORE; 79 (*postOptPattern)[6] = RESTORE;
80 } 80 }
81 81
82 SkPictureRecorder recorder; 82 SkPictureRecorder recorder;
83 83
84 SkCanvas* canvas = recorder.beginRecording(100, 100); 84 SkCanvas* canvas = recorder.beginRecording(100, 100, NULL, 0);
85 // have to disable the optimizations while generating the picture 85 // have to disable the optimizations while generating the picture
86 recorder.internalOnly_EnableOpts(false); 86 recorder.internalOnly_EnableOpts(false);
87 87
88 SkPaint saveLayerPaint; 88 SkPaint saveLayerPaint;
89 saveLayerPaint.setColor(0xCC000000); 89 saveLayerPaint.setColor(0xCC000000);
90 90
91 // saveLayer's 'bounds' parameter must be NULL for this optimization 91 // saveLayer's 'bounds' parameter must be NULL for this optimization
92 if (saveLayerHasPaint) { 92 if (saveLayerHasPaint) {
93 canvas->saveLayer(NULL, &saveLayerPaint); 93 canvas->saveLayer(NULL, &saveLayerPaint);
94 } else { 94 } else {
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
208 (*postOptPattern)[4] = CLIP_RECT; 208 (*postOptPattern)[4] = CLIP_RECT;
209 (*postOptPattern)[5] = DRAW_BITMAP_RECT_TO_RECT; 209 (*postOptPattern)[5] = DRAW_BITMAP_RECT_TO_RECT;
210 (*postOptPattern)[6] = RESTORE; 210 (*postOptPattern)[6] = RESTORE;
211 (*postOptPattern)[7] = RESTORE; 211 (*postOptPattern)[7] = RESTORE;
212 (*postOptPattern)[8] = RESTORE; 212 (*postOptPattern)[8] = RESTORE;
213 (*postOptPattern)[9] = RESTORE; 213 (*postOptPattern)[9] = RESTORE;
214 } 214 }
215 215
216 SkPictureRecorder recorder; 216 SkPictureRecorder recorder;
217 217
218 SkCanvas* canvas = recorder.beginRecording(100, 100); 218 SkCanvas* canvas = recorder.beginRecording(100, 100, NULL, 0);
219 // have to disable the optimizations while generating the picture 219 // have to disable the optimizations while generating the picture
220 recorder.internalOnly_EnableOpts(false); 220 recorder.internalOnly_EnableOpts(false);
221 221
222 SkPaint saveLayerPaint; 222 SkPaint saveLayerPaint;
223 saveLayerPaint.setColor(0xCC000000); 223 saveLayerPaint.setColor(0xCC000000);
224 224
225 // saveLayer's 'bounds' parameter must be NULL for this optimization 225 // saveLayer's 'bounds' parameter must be NULL for this optimization
226 if (saveLayerHasPaint) { 226 if (saveLayerHasPaint) {
227 canvas->saveLayer(NULL, &saveLayerPaint); 227 canvas->saveLayer(NULL, &saveLayerPaint);
228 } else { 228 } else {
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
351 351
352 canvas->save(); 352 canvas->save();
353 canvas->translate(SkIntToScalar(xPos), SkIntToScalar(yPos)); 353 canvas->translate(SkIntToScalar(xPos), SkIntToScalar(yPos));
354 pre->draw(canvas); 354 pre->draw(canvas);
355 xPos += pre->width(); 355 xPos += pre->width();
356 canvas->restore(); 356 canvas->restore();
357 357
358 // re-render the 'pre' picture and thus 'apply' the optimization 358 // re-render the 'pre' picture and thus 'apply' the optimization
359 SkPictureRecorder recorder; 359 SkPictureRecorder recorder;
360 360
361 SkCanvas* recordCanvas = recorder.beginRecording(pre->width(), pre-> height()); 361 SkCanvas* recordCanvas = recorder.beginRecording(pre->width(), pre-> height(), NULL, 0);
362 362
363 pre->draw(recordCanvas); 363 pre->draw(recordCanvas);
364 364
365 SkAutoTUnref<SkPicture> post(recorder.endRecording()); 365 SkAutoTUnref<SkPicture> post(recorder.endRecording());
366 366
367 if (!(check_pattern(*post, postPattern))) { 367 if (!(check_pattern(*post, postPattern))) {
368 WARN("Post optimization pattern mismatch"); 368 WARN("Post optimization pattern mismatch");
369 SkASSERT(0); 369 SkASSERT(0);
370 } 370 }
371 371
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
407 } 407 }
408 408
409 SkBitmap fCheckerboard; 409 SkBitmap fCheckerboard;
410 410
411 typedef skiagm::GM INHERITED; 411 typedef skiagm::GM INHERITED;
412 }; 412 };
413 413
414 ////////////////////////////////////////////////////////////////////////////// 414 //////////////////////////////////////////////////////////////////////////////
415 415
416 DEF_GM( return new OptimizationsGM; ) 416 DEF_GM( return new OptimizationsGM; )
OLDNEW
« no previous file with comments | « gm/gmmain.cpp ('k') | gm/pathopsskpclip.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698