aboutsummaryrefslogtreecommitdiffhomepage
path: root/bench/WritePixelsBench.cpp
diff options
context:
space:
mode:
authorGravatar commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>2014-03-07 03:25:16 +0000
committerGravatar commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>2014-03-07 03:25:16 +0000
commit4cd9e2169e35cd67ee7358acea6541245e1d1744 (patch)
tree6e78d84ef91181b41f5c45a73bab003c63780f10 /bench/WritePixelsBench.cpp
parenta5572e5bb2a2bbeeb59de0741c2527869d365a0c (diff)
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
Diffstat (limited to 'bench/WritePixelsBench.cpp')
-rw-r--r--bench/WritePixelsBench.cpp56
1 files changed, 30 insertions, 26 deletions
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)); )