blob: f74950c0880eca7e6b63331703672a2518a5de4f [file] [log] [blame]
mtklein@google.comd36522d2013-10-16 13:02:15 +00001#ifndef DMGpuTask_DEFINED
2#define DMGpuTask_DEFINED
3
commit-bot@chromium.org99589af2013-12-10 14:53:16 +00004#include "DMExpectations.h"
mtklein@google.comd36522d2013-10-16 13:02:15 +00005#include "DMReporter.h"
6#include "DMTask.h"
7#include "DMTaskRunner.h"
8#include "GrContextFactory.h"
9#include "SkBitmap.h"
10#include "SkString.h"
11#include "SkTemplates.h"
12#include "gm.h"
mtklein@google.comd36522d2013-10-16 13:02:15 +000013
14// This is the main entry point for drawing GMs with the GPU.
15
16namespace DM {
17
18class GpuTask : public Task {
19public:
commit-bot@chromium.org38aeb0f2014-02-26 23:01:57 +000020 GpuTask(const char* config,
mtklein@google.comd36522d2013-10-16 13:02:15 +000021 Reporter*,
22 TaskRunner*,
commit-bot@chromium.org99589af2013-12-10 14:53:16 +000023 const Expectations&,
mtklein@google.comd36522d2013-10-16 13:02:15 +000024 skiagm::GMRegistry::Factory,
mtklein@google.comd36522d2013-10-16 13:02:15 +000025 GrContextFactory::GLContextType,
26 int sampleCount);
27
28 virtual void draw() SK_OVERRIDE;
29 virtual bool usesGpu() const SK_OVERRIDE { return true; }
30 virtual bool shouldSkip() const SK_OVERRIDE;
31 virtual SkString name() const SK_OVERRIDE { return fName; }
32
33private:
34 SkAutoTDelete<skiagm::GM> fGM;
35 const SkString fName;
commit-bot@chromium.org99589af2013-12-10 14:53:16 +000036 const Expectations& fExpectations;
mtklein@google.comd36522d2013-10-16 13:02:15 +000037 const GrContextFactory::GLContextType fContextType;
38 const int fSampleCount;
39};
40
41} // namespace DM
42
43#endif // DMGpuTask_DEFINED