1#ifndef DMGpuGMTask_DEFINED
2#define DMGpuGMTask_DEFINED
3
4#include "DMGpuSupport.h"
5#include "DMReporter.h"
6#include "DMTask.h"
7#include "DMTaskRunner.h"
8#include "SkBitmap.h"
9#include "SkString.h"
10#include "SkTemplates.h"
11#include "gm.h"
12
13// This is the main entry point for drawing GMs with the GPU.
14
15namespace DM {
16
17class GpuGMTask : public GpuTask {
18public:
19    GpuGMTask(const char* config,
20              Reporter*,
21              TaskRunner*,
22              skiagm::GMRegistry::Factory,
23              GrContextFactory::GLContextType,
24              GrGLStandard gpuAPI,
25              int sampleCount);
26
27    virtual void draw(GrContextFactory*) SK_OVERRIDE;
28    virtual bool shouldSkip() const SK_OVERRIDE;
29    virtual SkString name() const SK_OVERRIDE { return fName; }
30
31private:
32    SkAutoTDelete<skiagm::GM> fGM;
33    const SkString fName;
34    const GrContextFactory::GLContextType fContextType;
35    GrGLStandard fGpuAPI;
36    const int fSampleCount;
37};
38
39}  // namespace DM
40
41#endif  // DMGpuGMTask_DEFINED
42