blob: 87c530b825a8bd431e025d02a74209646bef95f1 [file] [log] [blame]
mtklein@google.comd36522d2013-10-16 13:02:15 +00001#ifndef DMGpuTask_DEFINED
2#define DMGpuTask_DEFINED
3
4#include "DMReporter.h"
5#include "DMTask.h"
6#include "DMTaskRunner.h"
7#include "GrContextFactory.h"
8#include "SkBitmap.h"
9#include "SkString.h"
10#include "SkTemplates.h"
11#include "gm.h"
12#include "gm_expectations.h"
13
14// This is the main entry point for drawing GMs with the GPU.
15
16namespace DM {
17
18class GpuTask : public Task {
19public:
20 GpuTask(const char* name,
21 Reporter*,
22 TaskRunner*,
23 const skiagm::ExpectationsSource&,
24 skiagm::GMRegistry::Factory,
25 SkBitmap::Config,
26 GrContextFactory::GLContextType,
27 int sampleCount);
28
29 virtual void draw() SK_OVERRIDE;
30 virtual bool usesGpu() const SK_OVERRIDE { return true; }
31 virtual bool shouldSkip() const SK_OVERRIDE;
32 virtual SkString name() const SK_OVERRIDE { return fName; }
33
34private:
35 SkAutoTDelete<skiagm::GM> fGM;
36 const SkString fName;
37 const skiagm::Expectations fExpectations;
38 const SkBitmap::Config fConfig;
39 const GrContextFactory::GLContextType fContextType;
40 const int fSampleCount;
41};
42
43} // namespace DM
44
45#endif // DMGpuTask_DEFINED