Index: bench/PatchBench.cpp |
diff --git a/bench/PatchBench.cpp b/bench/PatchBench.cpp |
index 2e99e4efbf4fb1ea54b26a3ab21fb822629d1dd3..8ce80c4bc5d2a039688e91e8fb72620cf5aa9372 100644 |
--- a/bench/PatchBench.cpp |
+++ b/bench/PatchBench.cpp |
@@ -17,16 +17,16 @@ |
#include "SkTArray.h" |
class PatchBench : public Benchmark { |
- |
+ |
public: |
- |
+ |
enum VertexMode { |
kNone_VertexMode, |
kColors_VertexMode, |
kTexCoords_VertexMode, |
kBoth_VertexMode |
}; |
- |
+ |
PatchBench(SkPoint scale, VertexMode vertexMode) |
: fScale(scale) |
, fVertexMode(vertexMode) { } |
@@ -35,7 +35,7 @@ public: |
virtual void appendName(SkString* name) { |
name->append("normal"); |
} |
- |
+ |
// to make other type of patches override this method |
virtual void setCubics() { |
const SkPoint points[SkPatchUtils::kNumCtrlPts] = { |
@@ -50,29 +50,29 @@ public: |
}; |
memcpy(fCubics, points, SkPatchUtils::kNumCtrlPts * sizeof(SkPoint)); |
} |
- |
+ |
virtual void setColors() { |
const SkColor colors[SkPatchUtils::kNumCorners] = { |
SK_ColorRED, SK_ColorGREEN, SK_ColorBLUE, SK_ColorCYAN |
}; |
memcpy(fColors, colors, SkPatchUtils::kNumCorners * sizeof(SkColor)); |
} |
- |
+ |
virtual void setTexCoords() { |
const SkPoint texCoords[SkPatchUtils::kNumCorners] = { |
{0.0f, 0.0f}, {1.0f, 0.0f}, {1.0f,1.0f}, {0.0f, 1.0f} |
}; |
memcpy(fTexCoords, texCoords, SkPatchUtils::kNumCorners * sizeof(SkPoint)); |
} |
- |
+ |
// override this method to change the shader |
- virtual SkShader* getShader() { |
+ virtual SkShader* createShader() { |
const SkColor colors[] = { |
SK_ColorRED, SK_ColorCYAN, SK_ColorGREEN, SK_ColorWHITE, |
SK_ColorMAGENTA, SK_ColorBLUE, SK_ColorYELLOW, |
}; |
const SkPoint pts[] = { { 200.f / 4.f, 0.f }, { 3.f * 200.f / 4, 200.f } }; |
- |
+ |
return SkGradientShader::CreateLinear(pts, colors, NULL, |
SK_ARRAY_COUNT(colors), |
SkShader::kMirror_TileMode); |
@@ -103,13 +103,13 @@ protected: |
fScale.x(), fScale.y()); |
return fName.c_str(); |
} |
- |
+ |
virtual void preDraw() { |
- |
+ |
} |
virtual void onDraw(const int loops, SkCanvas* canvas) SK_OVERRIDE { |
- |
+ |
this->setCubics(); |
this->setColors(); |
this->setTexCoords(); |
@@ -117,13 +117,13 @@ protected: |
switch (fVertexMode) { |
case kTexCoords_VertexMode: |
case kBoth_VertexMode: |
- fPaint.setShader(getShader()); |
+ fPaint.setShader(this->createShader())->unref(); |
tfarina
2014/08/13 16:54:33
lgtm
|
break; |
default: |
fPaint.setShader(NULL); |
break; |
} |
- |
+ |
canvas->scale(fScale.x(), fScale.y()); |
for (int i = 0; i < loops; i++) { |
switch (fVertexMode) { |
@@ -152,7 +152,7 @@ protected: |
SkPoint fTexCoords[4]; |
SkColor fColors[4]; |
VertexMode fVertexMode; |
- |
+ |
typedef Benchmark INHERITED; |
}; |
@@ -164,7 +164,7 @@ public: |
virtual void appendName(SkString* name) SK_OVERRIDE { |
name->append("square"); |
} |
- |
+ |
virtual void setCubics() { |
const SkPoint points[SkPatchUtils::kNumCtrlPts] = { |
//top points |
@@ -186,11 +186,11 @@ class LODDiffPatchBench : public PatchBench { |
public: |
LODDiffPatchBench(SkPoint scale, VertexMode vertexMode) |
: INHERITED(scale, vertexMode) { } |
- |
+ |
virtual void appendName(SkString* name) SK_OVERRIDE { |
name->append("LOD_Diff"); |
} |
- |
+ |
virtual void setCubics() { |
const SkPoint points[SkPatchUtils::kNumCtrlPts] = { |
//top points |
@@ -212,11 +212,11 @@ class LoopPatchBench : public PatchBench { |
public: |
LoopPatchBench(SkPoint scale, VertexMode vertexMode) |
: INHERITED(scale, vertexMode) { } |
- |
+ |
virtual void appendName(SkString* name) SK_OVERRIDE { |
name->append("loop"); |
} |
- |
+ |
virtual void setCubics() { |
const SkPoint points[SkPatchUtils::kNumCtrlPts] = { |
//top points |