Index: bench/SKPBench.cpp |
diff --git a/bench/SKPBench.cpp b/bench/SKPBench.cpp |
new file mode 100644 |
index 0000000000000000000000000000000000000000..cd7d4b00e1c9a316158c20b3517f8666ee814110 |
--- /dev/null |
+++ b/bench/SKPBench.cpp |
@@ -0,0 +1,37 @@ |
+/* |
+ * Copyright 2014 Google Inc. |
+ * |
+ * Use of this source code is governed by a BSD-style license that can be |
+ * found in the LICENSE file. |
+ */ |
+ |
+#include "SKPBench.h" |
+ |
+SKPBench::SKPBench(const char* name, const SkPicture* pic, const SkIRect& clip, SkScalar scale) |
+ : fPic(SkRef(pic)) |
+ , fClip(clip) |
+ , fScale(scale) { |
+ fName.printf("%s_%.2g", name, scale); |
+} |
+ |
+const char* SKPBench::onGetName() { |
+ return fName.c_str(); |
+} |
+ |
+bool SKPBench::isSuitableFor(Backend backend) { |
+ return backend != kNonRendering_Backend; |
+} |
+ |
+SkIPoint SKPBench::onGetSize() { |
+ return SkIPoint::Make(fClip.width(), fClip.height()); |
+} |
+ |
+void SKPBench::onDraw(const int loops, SkCanvas* canvas) { |
+ canvas->save(); |
+ canvas->scale(fScale, fScale); |
+ for (int i = 0; i < loops; i++) { |
+ fPic->draw(canvas); |
+ canvas->flush(); |
+ } |
+ canvas->restore(); |
+} |