Chromium Code Reviews| Index: bench/XfermodeBench.cpp |
| diff --git a/bench/XfermodeBench.cpp b/bench/XfermodeBench.cpp |
| index e9b3b95021ed5f1ed8ea9f4d4719d31938042651..da11b29e6a76bdd1471c9dfd4bbaa471b60ba431 100644 |
| --- a/bench/XfermodeBench.cpp |
| +++ b/bench/XfermodeBench.cpp |
| @@ -62,6 +62,29 @@ private: |
| typedef SkBenchmark INHERITED; |
| }; |
| +class XferCreateBench : public SkBenchmark { |
| + enum { |
| + N = 1000 |
| + }; |
| +public: |
| + XferCreateBench() {} |
| + |
| +protected: |
| + virtual const char* onGetName() SK_OVERRIDE { return "xfermode_create"; } |
| + |
| + virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE { |
| + for (int outer = 0; outer < N; ++outer) { |
|
mtklein
2013/10/04 14:26:40
Instead of N, use this->getLoops(). (Or N * this-
|
| + for (int i = 0; i <= SkXfermode::kLastMode; ++i) { |
| + SkXfermode* xfer = SkXfermode::Create(SkXfermode::Mode(i)); |
| + SkSafeUnref(xfer); |
| + } |
| + } |
| + } |
| + |
| +private: |
| + typedef SkBenchmark INHERITED; |
| +}; |
| + |
| ////////////////////////////////////////////////////////////////////////////// |
| #define CONCAT_I(x, y) x ## y |
| @@ -106,3 +129,5 @@ BENCH(SkXfermode::kLuminosity_Mode) |
| BENCH(SkLumaMaskXfermode::Create(SkXfermode::kSrcIn_Mode), "SrcInLuma") |
| BENCH(SkLumaMaskXfermode::Create(SkXfermode::kDstIn_Mode), "DstInLuma") |
| BENCH(SkLumaMaskXfermode::Create(SkXfermode::kSrcOver_Mode), "SrcOverLuma") |
| + |
| +DEF_BENCH(return new XferCreateBench;) |