From 4cd9e2169e35cd67ee7358acea6541245e1d1744 Mon Sep 17 00:00:00 2001 From: "commit-bot@chromium.org" Date: Fri, 7 Mar 2014 03:25:16 +0000 Subject: Add SkCanvas::writePixels that takes info+pixels directly add corresponding methods to device (w/ diff name to avoid colliding with exising virtuals) BUG=skia: R=bsalomon@google.com, robertphillips@google.com, junov@google.com, junov@chromium.org Author: reed@google.com Review URL: https://codereview.chromium.org/180113010 git-svn-id: http://skia.googlecode.com/svn/trunk@13697 2bbb7eff-a529-9590-31e7-b0007b416f81 --- bench/WritePixelsBench.cpp | 56 +++++++++++++++++++++++++--------------------- 1 file changed, 30 insertions(+), 26 deletions(-) (limited to 'bench/WritePixelsBench.cpp') diff --git a/bench/WritePixelsBench.cpp b/bench/WritePixelsBench.cpp index 0313846a3b..27c3f5a45b 100644 --- a/bench/WritePixelsBench.cpp +++ b/bench/WritePixelsBench.cpp @@ -1,4 +1,3 @@ - /* * Copyright 2013 Google Inc. * @@ -8,35 +7,35 @@ #include "SkBenchmark.h" #include "SkCanvas.h" -#include "SkConfig8888.h" #include "SkString.h" class WritePixelsBench : public SkBenchmark { public: - WritePixelsBench(SkCanvas::Config8888 config) - : fConfig(config) - , fName("writepix") { - switch (config) { - case SkCanvas::kNative_Premul_Config8888: - fName.append("_native_PM"); - break; - case SkCanvas::kNative_Unpremul_Config8888: - fName.append("_native_UPM"); + WritePixelsBench(SkColorType ct, SkAlphaType at) + : fColorType(ct) + , fAlphaType(at) + , fName("writepix") + { + switch (ct) { + case kRGBA_8888_SkColorType: + fName.append("_RGBA"); break; - case SkCanvas::kBGRA_Premul_Config8888: - fName.append("_bgra_PM"); + case kBGRA_8888_SkColorType: + fName.append("_BGRA"); break; - case SkCanvas::kBGRA_Unpremul_Config8888: - fName.append("_bgra_UPM"); + default: + SkASSERT(0); break; - case SkCanvas::kRGBA_Premul_Config8888: - fName.append("_rgba_PM"); + } + switch (at) { + case kPremul_SkAlphaType: + fName.append("_PM"); break; - case SkCanvas::kRGBA_Unpremul_Config8888: - fName.append("_rgba_UPM"); + case kUnpremul_SkAlphaType: + fName.append("_UPM"); break; default: - SK_CRASH(); + SkASSERT(0); break; } } @@ -52,22 +51,27 @@ protected: canvas->clear(0xFFFF0000); SkBitmap bmp; - bmp.setConfig(SkBitmap::kARGB_8888_Config, size.width(), size.height()); + bmp.allocN32Pixels(size.width(), size.height()); canvas->readPixels(&bmp, 0, 0); + SkImageInfo info = bmp.info(); + info.fColorType = fColorType; + info.fAlphaType = fAlphaType; + for (int loop = 0; loop < loops; ++loop) { - canvas->writePixels(bmp, 0, 0, fConfig); + canvas->writePixels(info, bmp.getPixels(), bmp.rowBytes(), 0, 0); } } private: - SkCanvas::Config8888 fConfig; - SkString fName; + SkColorType fColorType; + SkAlphaType fAlphaType; + SkString fName; typedef SkBenchmark INHERITED; }; ////////////////////////////////////////////////////////////////////////////// -DEF_BENCH( return SkNEW_ARGS(WritePixelsBench, (SkCanvas::kRGBA_Premul_Config8888)); ) -DEF_BENCH( return SkNEW_ARGS(WritePixelsBench, (SkCanvas::kRGBA_Unpremul_Config8888)); ) +DEF_BENCH( return SkNEW_ARGS(WritePixelsBench, (kRGBA_8888_SkColorType, kPremul_SkAlphaType)); ) +DEF_BENCH( return SkNEW_ARGS(WritePixelsBench, (kRGBA_8888_SkColorType, kUnpremul_SkAlphaType)); ) -- cgit v1.2.3