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

Side by Side Diff: gm/imageblurtiled.cpp

Issue 233933002: when getClipBounds returns false, the out-param is uninitialized (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: 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 | « no previous file | 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 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 "gm.h" 8 #include "gm.h"
9 #include "SkBlurImageFilter.h" 9 #include "SkBlurImageFilter.h"
10 #include "SkRandom.h" 10 #include "SkRandom.h"
(...skipping 16 matching lines...) Expand all
27 27
28 virtual SkISize onISize() { 28 virtual SkISize onISize() {
29 return make_isize(WIDTH, HEIGHT); 29 return make_isize(WIDTH, HEIGHT);
30 } 30 }
31 31
32 virtual void onDraw(SkCanvas* canvas) { 32 virtual void onDraw(SkCanvas* canvas) {
33 SkPaint paint; 33 SkPaint paint;
34 paint.setImageFilter(SkBlurImageFilter::Create(fSigmaX, fSigmaY))->unref (); 34 paint.setImageFilter(SkBlurImageFilter::Create(fSigmaX, fSigmaY))->unref ();
35 const SkScalar tile_size = SkIntToScalar(128); 35 const SkScalar tile_size = SkIntToScalar(128);
36 SkRect bounds; 36 SkRect bounds;
37 canvas->getClipBounds(&bounds); 37 if (!canvas->getClipBounds(&bounds)) {
38 bounds.setEmpty();
39 }
38 for (SkScalar y = bounds.top(); y < bounds.bottom(); y += tile_size) { 40 for (SkScalar y = bounds.top(); y < bounds.bottom(); y += tile_size) {
39 for (SkScalar x = bounds.left(); x < bounds.right(); x += tile_size) { 41 for (SkScalar x = bounds.left(); x < bounds.right(); x += tile_size) {
40 canvas->save(); 42 canvas->save();
41 canvas->clipRect(SkRect::MakeXYWH(x, y, tile_size, tile_size)); 43 canvas->clipRect(SkRect::MakeXYWH(x, y, tile_size, tile_size));
42 canvas->saveLayer(NULL, &paint); 44 canvas->saveLayer(NULL, &paint);
43 const char* str[] = { 45 const char* str[] = {
44 "The quick", 46 "The quick",
45 "brown fox", 47 "brown fox",
46 "jumped over", 48 "jumped over",
47 "the lazy dog.", 49 "the lazy dog.",
(...skipping 19 matching lines...) Expand all
67 69
68 typedef GM INHERITED; 70 typedef GM INHERITED;
69 }; 71 };
70 72
71 ////////////////////////////////////////////////////////////////////////////// 73 //////////////////////////////////////////////////////////////////////////////
72 74
73 static GM* MyFactory1(void*) { return new ImageBlurTiledGM(3.0f, 3.0f); } 75 static GM* MyFactory1(void*) { return new ImageBlurTiledGM(3.0f, 3.0f); }
74 static GMRegistry reg1(MyFactory1); 76 static GMRegistry reg1(MyFactory1);
75 77
76 } 78 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698