blob: 8e7f53188313769c379a4ca7a2e7eceb13b904dd [file] [log] [blame]
mtklein@google.comd36522d2013-10-16 13:02:15 +00001#ifndef DMCpuTask_DEFINED
2#define DMCpuTask_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 "SkBitmap.h"
9#include "SkString.h"
10#include "SkTemplates.h"
11#include "gm.h"
mtklein@google.comd36522d2013-10-16 13:02:15 +000012
13// This is the main entry point for drawing GMs with the CPU. Commandline
14// flags control whether this kicks off various comparison tasks when done.
mtklein@google.comd36522d2013-10-16 13:02:15 +000015
16namespace DM {
17
18class CpuTask : public Task {
19public:
20 CpuTask(const char* name,
21 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,
commit-bot@chromium.org15a14052014-02-16 00:59:25 +000025 SkColorType);
mtklein@google.comd36522d2013-10-16 13:02:15 +000026
27 virtual void draw() SK_OVERRIDE;
28 virtual bool usesGpu() const SK_OVERRIDE { return false; }
29 virtual bool shouldSkip() const SK_OVERRIDE;
30 virtual SkString name() const SK_OVERRIDE { return fName; }
31
32private:
33 skiagm::GMRegistry::Factory fGMFactory;
34 SkAutoTDelete<skiagm::GM> fGM;
35 const SkString fName;
commit-bot@chromium.org99589af2013-12-10 14:53:16 +000036 const Expectations& fExpectations;
commit-bot@chromium.org15a14052014-02-16 00:59:25 +000037 const SkColorType fColorType;
mtklein@google.comd36522d2013-10-16 13:02:15 +000038};
39
40} // namespace DM
41
42#endif // DMCpuTask_DEFINED