From 2d078b637a08d5d4298c50245d3b48950362e9cf Mon Sep 17 00:00:00 2001 From: "reed@google.com" Date: Thu, 15 Nov 2012 19:52:07 +0000 Subject: add bench for srcmode git-svn-id: http://skia.googlecode.com/svn/trunk@6443 2bbb7eff-a529-9590-31e7-b0007b416f81 --- bench/RectBench.cpp | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'bench/RectBench.cpp') diff --git a/bench/RectBench.cpp b/bench/RectBench.cpp index f3b9202c37..2674232053 100644 --- a/bench/RectBench.cpp +++ b/bench/RectBench.cpp @@ -73,6 +73,37 @@ private: typedef SkBenchmark INHERITED; }; +class SrcModeRectBench : public RectBench { +public: + SrcModeRectBench(void* param) : INHERITED(param, 1, 0) { + fMode = SkXfermode::Create(SkXfermode::kSrc_Mode); + } + + virtual ~SrcModeRectBench() { + SkSafeUnref(fMode); + } + +protected: + virtual void setupPaint(SkPaint* paint) SK_OVERRIDE { + this->INHERITED::setupPaint(paint); + // srcmode is most interesting when we're not opaque + paint->setAlpha(0x80); + paint->setXfermode(fMode); + } + + virtual const char* onGetName() SK_OVERRIDE { + fName.set(this->INHERITED::onGetName()); + fName.prepend("srcmode_"); + return fName.c_str(); + } + +private: + SkString fName; + SkXfermode* fMode; + + typedef RectBench INHERITED; +}; + class OvalBench : public RectBench { public: OvalBench(void* param, int shift) : RectBench(param, shift) {} @@ -219,6 +250,8 @@ DEF_BENCH( return SkNEW_ARGS(PointsBench, (p, SkCanvas::kPoints_PointMode, "poin DEF_BENCH( return SkNEW_ARGS(PointsBench, (p, SkCanvas::kLines_PointMode, "lines")); ) DEF_BENCH( return SkNEW_ARGS(PointsBench, (p, SkCanvas::kPolygon_PointMode, "polygon")); ) +DEF_BENCH( return SkNEW_ARGS(SrcModeRectBench, (p)); ) + /* init the blitmask bench */ DEF_BENCH( return SkNEW_ARGS(BlitMaskBench, -- cgit v1.2.3