| Index: tools/VisualBench/CpuWrappedBenchmark.h
|
| diff --git a/tools/VisualBench/CpuWrappedBenchmark.h b/tools/VisualBench/CpuWrappedBenchmark.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..e63187cca48ca450ded6fecdf565099ddb4b42d5
|
| --- /dev/null
|
| +++ b/tools/VisualBench/CpuWrappedBenchmark.h
|
| @@ -0,0 +1,36 @@
|
| +/*
|
| + * Copyright 2015 Google Inc.
|
| + *
|
| + * Use of this source code is governed by a BSD-style license that can be
|
| + * found in the LICENSE file.
|
| + *
|
| + */
|
| +
|
| +#ifndef CpuWrappedBenchmark_DEFINED
|
| +#define CpuWrappedBenchmark_DEFINED
|
| +
|
| +#include "Benchmark.h"
|
| +#include "SkSurface.h"
|
| +
|
| +class CpuWrappedBenchmark : public Benchmark {
|
| +public:
|
| + // Takes ownership of caller's ref on `bench`.
|
| + explicit CpuWrappedBenchmark(Benchmark* bench) : fBench(bench) {}
|
| +
|
| + const char* onGetName() override { return fBench->getName(); }
|
| + const char* onGetUniqueName() override { return fBench->getUniqueName(); }
|
| +
|
| + void onDraw(int loops, SkCanvas* canvas) override {
|
| + // TODO: use onPreDraw() to move offscreen allocation/deallocation out of timing.
|
| + SkAutoTUnref<SkSurface> offscreen(SkSurface::NewRaster(canvas->imageInfo()));
|
| +
|
| + fBench->draw(loops, offscreen->getCanvas());
|
| + SkAutoTUnref<SkImage> image(offscreen->newImageSnapshot());
|
| + canvas->drawImage(image, 0,0);
|
| + }
|
| +
|
| +private:
|
| + SkAutoTUnref<Benchmark> fBench;
|
| +};
|
| +
|
| +#endif//CpuWrappedBenchmark_DEFINED
|
|
|