Index: dm/DMBenchTask.h |
diff --git a/dm/DMBenchTask.h b/dm/DMBenchTask.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..1e9bc9912ef7175a3db35c870095d27465946da4 |
--- /dev/null |
+++ b/dm/DMBenchTask.h |
@@ -0,0 +1,67 @@ |
+#ifndef DMBenchTask_DEFINED |
+#define DMBenchTask_DEFINED |
+ |
+#include "DMReporter.h" |
+#include "DMTask.h" |
+#include "DMTaskRunner.h" |
+#include "SkBenchmark.h" |
+#include "SkString.h" |
+#include "SkTemplates.h" |
+ |
+// Tasks that run an SkBenchmark once as a check that it doesn't crash. |
+ |
+namespace DM { |
+ |
+class NonRenderingBenchTask : public Task { |
+public: |
+ NonRenderingBenchTask(const char* config, Reporter*, TaskRunner*, BenchRegistry::Factory); |
+ |
+ virtual void draw() SK_OVERRIDE; |
+ virtual bool usesGpu() const SK_OVERRIDE { return false; } |
+ virtual bool shouldSkip() const SK_OVERRIDE; |
+ virtual SkString name() const SK_OVERRIDE { return fName; } |
+ |
+private: |
+ SkAutoTDelete<SkBenchmark> fBench; |
+ const SkString fName; |
+}; |
+ |
+class CpuBenchTask : public Task { |
+public: |
+ CpuBenchTask(const char* config, Reporter*, TaskRunner*, BenchRegistry::Factory, SkColorType); |
+ |
+ virtual void draw() SK_OVERRIDE; |
+ virtual bool usesGpu() const SK_OVERRIDE { return false; } |
+ virtual bool shouldSkip() const SK_OVERRIDE; |
+ virtual SkString name() const SK_OVERRIDE { return fName; } |
+ |
+private: |
+ SkAutoTDelete<SkBenchmark> fBench; |
+ const SkString fName; |
+ const SkColorType fColorType; |
+}; |
+ |
+class GpuBenchTask : public Task { |
+public: |
+ GpuBenchTask(const char* config, |
+ Reporter*, |
+ TaskRunner*, |
+ BenchRegistry::Factory, |
+ GrContextFactory::GLContextType, |
+ int sampleCount); |
+ |
+ virtual void draw() SK_OVERRIDE; |
+ virtual bool usesGpu() const SK_OVERRIDE { return true; } |
+ virtual bool shouldSkip() const SK_OVERRIDE; |
+ virtual SkString name() const SK_OVERRIDE { return fName; } |
+ |
+private: |
+ SkAutoTDelete<SkBenchmark> fBench; |
+ const SkString fName; |
+ const GrContextFactory::GLContextType fContextType; |
+ int fSampleCount; |
+}; |
+ |
+} // namespace DM |
+ |
+#endif // DMBenchTask_DEFINED |