Add some benches for SkArithmeticMode.
authorsenorblanco <senorblanco@chromium.org>
Fri, 8 Apr 2016 21:29:47 +0000 (14:29 -0700)
committerCommit bot <commit-bot@chromium.org>
Fri, 8 Apr 2016 21:29:47 +0000 (14:29 -0700)
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1868333002

Review URL: https://codereview.chromium.org/1868333002

bench/XfermodeBench.cpp

index 829c437..7d00f41 100644 (file)
@@ -6,6 +6,7 @@
  */
 
 #include "Benchmark.h"
+#include "SkArithmeticMode.h"
 #include "SkCanvas.h"
 #include "SkPaint.h"
 #include "SkRandom.h"
@@ -22,9 +23,8 @@ public:
         fName.printf("Xfermode_%s%s", SkXfermode::ModeName(mode), aa ? "_aa" : "");
     }
 
-    XfermodeBench(SkXfermode* xferMode, const char* name, bool aa) {
-        SkASSERT(xferMode);
-        fXfermode.reset(xferMode);
+    XfermodeBench(sk_sp<SkXfermode> xferMode, const char* name, bool aa) {
+        fXfermode = xferMode;
         fAA = aa;
         fName.printf("Xfermode_%s%s", name, aa ? "_aa" : "");
     }
@@ -135,4 +135,13 @@ BENCH(SkXfermode::kSaturation_Mode)
 BENCH(SkXfermode::kColor_Mode)
 BENCH(SkXfermode::kLuminosity_Mode)
 
+DEF_BENCH( return new XfermodeBench(SkArithmeticMode::Make(0.2f, -0.3f, 1.5f, -0.7f, false), \
+                                    "arithmetic", false); )
+DEF_BENCH( return new XfermodeBench(SkArithmeticMode::Make(0.2f, -0.3f, 1.5f, -0.7f, true), \
+                                    "arithmetic_enforce_pm", false); )
+DEF_BENCH( return new XfermodeBench(SkArithmeticMode::Make(0.2f, -0.3f, 1.5f, -0.7f, false), \
+                                    "arithmetic", true); )
+DEF_BENCH( return new XfermodeBench(SkArithmeticMode::Make(0.2f, -0.3f, 1.5f, -0.7f, true), \
+                                    "arithmetic_enforce_pm", true); )
+
 DEF_BENCH(return new XferCreateBench;)