summaryrefslogtreecommitdiffstatsci
path: root/src/caskbench.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/caskbench.cpp')
-rw-r--r--src/caskbench.cpp25
1 files changed, 13 insertions, 12 deletions
diff --git a/src/caskbench.cpp b/src/caskbench.cpp
index 1ba3132..a80f95c 100644
--- a/src/caskbench.cpp
+++ b/src/caskbench.cpp
@@ -59,17 +59,18 @@ write_image_file_cairo (const char *fname, caskbench_context_t *context)
void
write_image_file_skia (const char *fname, caskbench_context_t *context)
{
- SkBitmap *bitmap = context->skia_bitmap;
+ SkBaseDevice *device = context->skia_device;
+ assert (device);
- assert (bitmap);
- SkAutoLockPixels image_lock(*bitmap);
- cairo_surface_t* skia_surface = cairo_image_surface_create_for_data((unsigned char*)bitmap->getPixels(),
- CAIRO_FORMAT_ARGB32,
- bitmap->width(), bitmap->height(),
- bitmap->rowBytes());
+ const SkBitmap &bitmap = device->accessBitmap(false);
+ SkAutoLockPixels image_lock(bitmap);
+ cairo_surface_t* surface = cairo_image_surface_create_for_data((unsigned char*)bitmap.getPixels(),
+ CAIRO_FORMAT_ARGB32,
+ bitmap.width(), bitmap.height(),
+ bitmap.rowBytes());
- cairo_surface_write_to_png (skia_surface, fname);
- cairo_surface_destroy(skia_surface);
+ cairo_surface_write_to_png (surface, fname);
+ cairo_surface_destroy(surface);
}
@@ -252,8 +253,8 @@ main (int argc, char *argv[])
skia_bitmap.setConfig(SkBitmap::kARGB_8888_Config,
context.canvas_width, context.canvas_height);
skia_bitmap.allocPixels();
- SkBitmapDevice device(skia_bitmap);
- SkCanvas skia_canvas(&device);
+ SkBitmapDevice skia_device(skia_bitmap);
+ SkCanvas skia_canvas(&skia_device);
// If dry run, just list the test cases
if (opt.dry_run) {
@@ -266,7 +267,7 @@ main (int argc, char *argv[])
context.paint = &skia_paint;
context.canvas = &skia_canvas;
context.cairo_surface = cairo_surface;
- context.skia_bitmap = &skia_bitmap;
+ context.skia_device = &skia_device;
result.test_case_name = perf_tests[c].name;
result.size = 0;