From b2107b9ef476f0b2baa353b3efc7db9055138446 Mon Sep 17 00:00:00 2001 From: Bryce Harrington Date: Tue, 26 Nov 2013 19:29:15 -0800 Subject: Don't compare skia image backend with cairo glx or egl --- src/caskbench.cpp | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) (limited to 'src/caskbench.cpp') diff --git a/src/caskbench.cpp b/src/caskbench.cpp index a80f95c..3263f0a 100644 --- a/src/caskbench.cpp +++ b/src/caskbench.cpp @@ -228,20 +228,29 @@ main (int argc, char *argv[]) caskbench_context_t context; caskbench_result_t result; cairo_surface_t *cairo_surface; - SkBitmap skia_bitmap; SkPaint skia_paint; context.size = opt.size; context.canvas_width = 800; context.canvas_height = 400; + context.skia_device = NULL; + context.paint = &skia_paint; if (opt.surface_type == NULL || !strncmp(opt.surface_type, "image", 5)) { cairo_surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, context.canvas_width, context.canvas_height); + + SkBitmap skia_bitmap; + skia_bitmap.setConfig(SkBitmap::kARGB_8888_Config, + context.canvas_width, context.canvas_height); + skia_bitmap.allocPixels(); + context.skia_device = new SkBitmapDevice (skia_bitmap); + } else if (!strncmp(opt.surface_type, "glx", 3)) { cairo_surface = create_cairo_surface_glx ( context.canvas_width, context.canvas_height); + } else if (!strncmp(opt.surface_type, "egl", 3)) { cairo_surface = create_cairo_surface_egl ( context.canvas_width, context.canvas_height); @@ -249,12 +258,8 @@ main (int argc, char *argv[]) if (!cairo_surface) errx(2, "Could not create a cairo surface\n"); - - skia_bitmap.setConfig(SkBitmap::kARGB_8888_Config, - context.canvas_width, context.canvas_height); - skia_bitmap.allocPixels(); - SkBitmapDevice skia_device(skia_bitmap); - SkCanvas skia_canvas(&skia_device); + if (!context.skia_device) + errx(2, "Could not create a skia device\n"); // If dry run, just list the test cases if (opt.dry_run) { @@ -264,10 +269,8 @@ main (int argc, char *argv[]) srand(0xdeadbeef); context.cr = cairo_create(cairo_surface); - context.paint = &skia_paint; - context.canvas = &skia_canvas; + context.canvas = new SkCanvas(context.skia_device); context.cairo_surface = cairo_surface; - context.skia_device = &skia_device; result.test_case_name = perf_tests[c].name; result.size = 0; -- cgit v1.3.1-4-g156e