}
class DashBench : public SkBenchmark {
+ SkString fName;
SkTDArray<SkScalar> fIntervals;
+ int fWidth;
enum {
N = SkBENCHLOOP(100)
};
public:
- DashBench(void* param, const SkScalar intervals[], int count) : INHERITED(param) {
+ DashBench(void* param, const SkScalar intervals[], int count, int width) : INHERITED(param) {
fIntervals.append(count, intervals);
+ for (int i = 0; i < count; ++i) {
+ fIntervals[i] *= width;
+ }
+ fWidth = width;
+ fName.printf("dash_%d", width);
}
virtual void makePath(SkPath* path) {
protected:
virtual const char* onGetName() SK_OVERRIDE {
- return "dash";
+ return fName.c_str();
}
virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE {
SkPaint paint;
this->setupPaint(&paint);
paint.setStyle(SkPaint::kStroke_Style);
-// paint.setStrokeWidth(SK_Scalar1);
+ paint.setStrokeWidth(SkIntToScalar(fWidth));
paint.setAntiAlias(false);
SkPath path;
#define PARAM(array) array, SK_ARRAY_COUNT(array)
-static SkBenchmark* gF0(void* p) { return new DashBench(p, PARAM(gDots)); }
+static SkBenchmark* gF0(void* p) { return new DashBench(p, PARAM(gDots), 0); }
+static SkBenchmark* gF1(void* p) { return new DashBench(p, PARAM(gDots), 1); }
+static SkBenchmark* gF2(void* p) { return new DashBench(p, PARAM(gDots), 4); }
static BenchRegistry gR0(gF0);
+static BenchRegistry gR1(gF1);
+static BenchRegistry gR2(gF2);