summaryrefslogtreecommitdiffstatsci
diff options
context:
space:
mode:
authorBryce Harrington <b.harrington@samsung.com>2014-04-16 18:59:53 -0700
committerBryce Harrington <b.harrington@samsung.com>2014-04-16 18:59:53 -0700
commitd35a0393eb6da773dfd1cfec8e3788d5762efe7f (patch)
treeb20e93ac7a12a30f0434195fc346e91333443875
parentcdb01f17b796905aa2bbb8c9f215664b8ba9b865 (diff)
Set up bitmaps for skia-samsung using the info structure
-rw-r--r--src/caskbench.cpp9
-rw-r--r--src/skia-image.cpp17
-rw-r--r--src/skia-tests/image.cpp7
3 files changed, 31 insertions, 2 deletions
diff --git a/src/caskbench.cpp b/src/caskbench.cpp
index 710ea89..da53713 100644
--- a/src/caskbench.cpp
+++ b/src/caskbench.cpp
@@ -99,10 +99,19 @@ write_image_file_skia (const char *fname, caskbench_context_t *context)
void * data;
cairo_surface_t* surface;
+#ifdef USE_LEGACY_SKIA_SRA
bitmap.setConfig(SkBitmap::kARGB_8888_Config,
context->canvas_width, context->canvas_height,
4 * context->canvas_width, // TODO: Get from context->skia_device
kPremul_SkAlphaType);
+#else
+ bitmap.setConfig(SkBitmap::kARGB_8888_Config,
+ context->canvas_width, context->canvas_height);
+ SkImageInfo info = SkImageInfo::Make(context->canvas_width, context->canvas_height,
+ kBGRA_8888_SkColorType,
+ kPremul_SkAlphaType);
+ bitmap.allocPixels(info);
+#endif
context->skia_canvas->flush();
if (!context->skia_canvas->readPixels(&bitmap, 0, 0, SkCanvas::kRGBA_Unpremul_Config8888)) {
warnx("Could not read pixels from skia device\n");
diff --git a/src/skia-image.cpp b/src/skia-image.cpp
index b8ff05b..f583ff1 100644
--- a/src/skia-image.cpp
+++ b/src/skia-image.cpp
@@ -13,9 +13,22 @@ SkBaseDevice *
create_skia_device_image (const device_config_t& config)
{
SkBitmap skia_bitmap;
- skia_bitmap.setConfig(SkBitmap::kARGB_8888_Config,
- config.width, config.height);
+ if (!skia_bitmap.setConfig(SkBitmap::kARGB_8888_Config,
+ config.width, config.height)) {
+ warnx("Failed to configure bitmap\n");
+ return NULL;
+ }
+#ifdef USE_LEGACY_SKIA_SRA
skia_bitmap.allocPixels();
+#else
+ SkImageInfo info = SkImageInfo::Make(config.width, config.height,
+ kBGRA_8888_SkColorType,
+ kPremul_SkAlphaType);
+ if (! skia_bitmap.allocPixels(info)) {
+ warnx("Failed to allocate pixels\n");
+ return NULL;
+ }
+#endif
return new SkBitmapDevice (skia_bitmap);
}
diff --git a/src/skia-tests/image.cpp b/src/skia-tests/image.cpp
index 9f84c64..fc23a2c 100644
--- a/src/skia-tests/image.cpp
+++ b/src/skia-tests/image.cpp
@@ -13,7 +13,14 @@ sk_setup_image(caskbench_context_t *ctx)
{
int i, x, y;
bitmap.setConfig(SkBitmap::kARGB_8888_Config, 160, 40);
+#ifdef USE_LEGACY_SKIA_SRA
bitmap.allocPixels();
+#else
+ SkImageInfo info = SkImageInfo::Make(160, 40,
+ kBGRA_8888_SkColorType,
+ kPremul_SkAlphaType);
+ bitmap.allocPixels(info);
+#endif
SkBitmapDevice device(bitmap);
SkCanvas canvas(&device);
SkPaint paint;