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

Side by Side Diff: tests/ImageFilterTest.cpp

Issue 214953003: split SkPictureRecorder out of SkPicture (Closed) Base URL: http://skia.googlecode.com/svn/trunk/
Patch Set: added guard 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
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 "SkBicubicImageFilter.h" 8 #include "SkBicubicImageFilter.h"
9 #include "SkBitmap.h" 9 #include "SkBitmap.h"
10 #include "SkBitmapDevice.h" 10 #include "SkBitmapDevice.h"
(...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after
265 265
266 DEF_TEST(ImageFilterMatrixTest, reporter) { 266 DEF_TEST(ImageFilterMatrixTest, reporter) {
267 SkBitmap temp; 267 SkBitmap temp;
268 temp.allocN32Pixels(100, 100); 268 temp.allocN32Pixels(100, 100);
269 SkBitmapDevice device(temp); 269 SkBitmapDevice device(temp);
270 SkCanvas canvas(&device); 270 SkCanvas canvas(&device);
271 canvas.scale(SkIntToScalar(2), SkIntToScalar(2)); 271 canvas.scale(SkIntToScalar(2), SkIntToScalar(2));
272 272
273 SkMatrix expectedMatrix = canvas.getTotalMatrix(); 273 SkMatrix expectedMatrix = canvas.getTotalMatrix();
274 274
275 SkPicture picture; 275 SkPictureRecorder recorder;
276 SkCanvas* recordingCanvas = picture.beginRecording(100, 100, 276 SkCanvas* recordingCanvas = recorder.beginRecording(100, 100,
277 SkPicture::kOptimizeForClippedPlayback_RecordingFlag); 277 SkPicture::kOptimizeForClippedPlayback_RecordingFlag);
278 278
279 SkPaint paint; 279 SkPaint paint;
280 SkAutoTUnref<MatrixTestImageFilter> imageFilter( 280 SkAutoTUnref<MatrixTestImageFilter> imageFilter(
281 new MatrixTestImageFilter(reporter, expectedMatrix)); 281 new MatrixTestImageFilter(reporter, expectedMatrix));
282 paint.setImageFilter(imageFilter.get()); 282 paint.setImageFilter(imageFilter.get());
283 SkCanvas::SaveFlags saveFlags = static_cast<SkCanvas::SaveFlags>( 283 SkCanvas::SaveFlags saveFlags = static_cast<SkCanvas::SaveFlags>(
284 SkCanvas::kHasAlphaLayer_SaveFlag | SkCanvas::kFullColorLayer_SaveFlag); 284 SkCanvas::kHasAlphaLayer_SaveFlag | SkCanvas::kFullColorLayer_SaveFlag);
285 recordingCanvas->saveLayer(NULL, &paint, saveFlags); 285 recordingCanvas->saveLayer(NULL, &paint, saveFlags);
286 SkPaint solidPaint; 286 SkPaint solidPaint;
287 solidPaint.setColor(0xFFFFFFFF); 287 solidPaint.setColor(0xFFFFFFFF);
288 recordingCanvas->save(); 288 recordingCanvas->save();
289 recordingCanvas->scale(SkIntToScalar(10), SkIntToScalar(10)); 289 recordingCanvas->scale(SkIntToScalar(10), SkIntToScalar(10));
290 recordingCanvas->drawRect(SkRect::Make(SkIRect::MakeWH(100, 100)), solidPain t); 290 recordingCanvas->drawRect(SkRect::Make(SkIRect::MakeWH(100, 100)), solidPain t);
291 recordingCanvas->restore(); // scale 291 recordingCanvas->restore(); // scale
292 recordingCanvas->restore(); // saveLayer 292 recordingCanvas->restore(); // saveLayer
293 picture.endRecording(); 293 SkAutoTUnref<SkPicture> picture(recorder.endRecording());
294 294
295 canvas.drawPicture(picture); 295 canvas.drawPicture(*picture);
296 } 296 }
297 297
298 static void test_huge_blur(SkBaseDevice* device, skiatest::Reporter* reporter) { 298 static void test_huge_blur(SkBaseDevice* device, skiatest::Reporter* reporter) {
299 SkCanvas canvas(device); 299 SkCanvas canvas(device);
300 300
301 SkBitmap bitmap; 301 SkBitmap bitmap;
302 bitmap.allocN32Pixels(100, 100); 302 bitmap.allocN32Pixels(100, 100);
303 bitmap.eraseARGB(0, 0, 0, 0); 303 bitmap.eraseARGB(0, 0, 0, 0);
304 304
305 // Check that a blur with an insane radius does not crash or assert. 305 // Check that a blur with an insane radius does not crash or assert.
(...skipping 22 matching lines...) Expand all
328 } 328 }
329 329
330 DEF_GPUTEST(HugeBlurImageFilterGPU, reporter, factory) { 330 DEF_GPUTEST(HugeBlurImageFilterGPU, reporter, factory) {
331 GrContext* context = factory->get(static_cast<GrContextFactory::GLContextTyp e>(0)); 331 GrContext* context = factory->get(static_cast<GrContextFactory::GLContextTyp e>(0));
332 SkAutoTUnref<SkGpuDevice> device(SkGpuDevice::Create(context, 332 SkAutoTUnref<SkGpuDevice> device(SkGpuDevice::Create(context,
333 SkImageInfo::MakeN32Pre mul(100, 100), 333 SkImageInfo::MakeN32Pre mul(100, 100),
334 0)); 334 0));
335 test_huge_blur(device, reporter); 335 test_huge_blur(device, reporter);
336 } 336 }
337 #endif 337 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698