1#ifndef DMCpuGMTask_DEFINED
2#define DMCpuGMTask_DEFINED
3
4#include "DMReporter.h"
5#include "DMTask.h"
6#include "DMTaskRunner.h"
7#include "SkBitmap.h"
8#include "SkString.h"
9#include "SkTemplates.h"
10#include "gm.h"
11
12// This is the main entry point for drawing GMs with the CPU.  Commandline
13// flags control whether this kicks off various comparison tasks when done.
14
15namespace DM {
16
17class CpuGMTask : public CpuTask {
18public:
19    CpuGMTask(const char* config,
20              Reporter*,
21              TaskRunner*,
22              skiagm::GMRegistry::Factory,
23              SkColorType);
24
25    virtual void draw() SK_OVERRIDE;
26    virtual bool shouldSkip() const SK_OVERRIDE;
27    virtual SkString name() const SK_OVERRIDE { return fName; }
28
29private:
30    skiagm::GMRegistry::Factory fGMFactory;
31    SkAutoTDelete<skiagm::GM> fGM;
32    const SkString fName;
33    const SkColorType fColorType;
34};
35
36}  // namespace DM
37
38#endif // DMCpuGMTask_DEFINED
39