aboutsummaryrefslogtreecommitdiffhomepage
path: root/bench/PatchBench.cpp
diff options
context:
space:
mode:
authorGravatar dandov <dandov@google.com>2014-08-15 13:30:47 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2014-08-15 13:30:47 -0700
commit7e5598a004d0aceb630707053566bee523feea66 (patch)
tree0668a1ef8dd6ee0f541b23f8cef22e62759f3d36 /bench/PatchBench.cpp
parenta723b576aed31a6eb2bdda6388e6bd779d04c6b0 (diff)
Added bench for grid of patches.
It is on top of my previous cl to fix the mem leaks of the regular patch bench. NOTREECHECKS=true BUG=skia: R=egdaniel@google.com, bsalomon@google.com Author: dandov@google.com Review URL: https://codereview.chromium.org/470543004
Diffstat (limited to 'bench/PatchBench.cpp')
-rw-r--r--bench/PatchBench.cpp30
1 files changed, 15 insertions, 15 deletions
diff --git a/bench/PatchBench.cpp b/bench/PatchBench.cpp
index 8ce80c4bc5..744141a879 100644
--- a/bench/PatchBench.cpp
+++ b/bench/PatchBench.cpp
@@ -5,16 +5,19 @@
* found in the LICENSE file.
*/
#include "Benchmark.h"
-#include "SkBitmap.h"
#include "SkCanvas.h"
-#include "SkColorPriv.h"
#include "SkGradientShader.h"
#include "SkPaint.h"
#include "SkPatchUtils.h"
-#include "SkRandom.h"
-#include "SkShader.h"
#include "SkString.h"
-#include "SkTArray.h"
+
+/**
+ * This bench measures the rendering time of the call SkCanvas::drawPatch with different types of
+ * input patches (regular case, with loops, a square, with a big difference between "parallel"
+ * sides). This bench also tests the different combination of optional parameters for the function
+ * (passing texture coordinates and colors, only textures coordinates, only colors or none).
+ * Finally, it applies a scale to test if the size affects the rendering time.
+ */
class PatchBench : public Benchmark {
@@ -92,7 +95,7 @@ protected:
vertexMode.set("texs");
break;
case kBoth_VertexMode:
- vertexMode.set("colors&texs");
+ vertexMode.set("colors_texs");
break;
default:
break;
@@ -104,12 +107,7 @@ protected:
return fName.c_str();
}
- virtual void preDraw() {
-
- }
-
- virtual void onDraw(const int loops, SkCanvas* canvas) SK_OVERRIDE {
-
+ virtual void onPreDraw() SK_OVERRIDE {
this->setCubics();
this->setColors();
this->setTexCoords();
@@ -123,7 +121,9 @@ protected:
fPaint.setShader(NULL);
break;
}
+ }
+ virtual void onDraw(const int loops, SkCanvas* canvas) SK_OVERRIDE {
canvas->scale(fScale.x(), fScale.y());
for (int i = 0; i < loops; i++) {
switch (fVertexMode) {
@@ -165,7 +165,7 @@ public:
name->append("square");
}
- virtual void setCubics() {
+ virtual void setCubics() SK_OVERRIDE {
const SkPoint points[SkPatchUtils::kNumCtrlPts] = {
//top points
{100,100},{150,100},{250,100}, {300,100},
@@ -191,7 +191,7 @@ public:
name->append("LOD_Diff");
}
- virtual void setCubics() {
+ virtual void setCubics() SK_OVERRIDE {
const SkPoint points[SkPatchUtils::kNumCtrlPts] = {
//top points
{100,175},{150,100},{250,100}, {300,0},
@@ -217,7 +217,7 @@ public:
name->append("loop");
}
- virtual void setCubics() {
+ virtual void setCubics() SK_OVERRIDE {
const SkPoint points[SkPatchUtils::kNumCtrlPts] = {
//top points
{100,100},{300,200},{100,200}, {300,100},