1ef57b7e65330d5f794a513630517907500f1c1d0commit-bot@chromium.org#ifndef DMCpuGMTask_DEFINED
2ef57b7e65330d5f794a513630517907500f1c1d0commit-bot@chromium.org#define DMCpuGMTask_DEFINED
3d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com
499589af4e333422639d7e873207dd323fdd6e808commit-bot@chromium.org#include "DMExpectations.h"
5d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com#include "DMReporter.h"
6d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com#include "DMTask.h"
7d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com#include "DMTaskRunner.h"
8d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com#include "SkBitmap.h"
9d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com#include "SkString.h"
10d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com#include "SkTemplates.h"
11d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com#include "gm.h"
12d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com
13d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com// This is the main entry point for drawing GMs with the CPU.  Commandline
14d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com// flags control whether this kicks off various comparison tasks when done.
15d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com
16d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.comnamespace DM {
17d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com
18ef57b7e65330d5f794a513630517907500f1c1d0commit-bot@chromium.orgclass CpuGMTask : public CpuTask {
19d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.compublic:
20ef57b7e65330d5f794a513630517907500f1c1d0commit-bot@chromium.org    CpuGMTask(const char* config,
21ef57b7e65330d5f794a513630517907500f1c1d0commit-bot@chromium.org              Reporter*,
22ef57b7e65330d5f794a513630517907500f1c1d0commit-bot@chromium.org              TaskRunner*,
23ef57b7e65330d5f794a513630517907500f1c1d0commit-bot@chromium.org              skiagm::GMRegistry::Factory,
24e4d3e605f74a23d050abad29909af421d8b1cf1amtklein              const Expectations&,
25ef57b7e65330d5f794a513630517907500f1c1d0commit-bot@chromium.org              SkColorType);
26d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com
27d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com    virtual void draw() SK_OVERRIDE;
28d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com    virtual bool shouldSkip() const SK_OVERRIDE;
29d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com    virtual SkString name() const SK_OVERRIDE { return fName; }
30d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com
31d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.comprivate:
32d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com    skiagm::GMRegistry::Factory fGMFactory;
33d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com    SkAutoTDelete<skiagm::GM> fGM;
34d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com    const SkString fName;
3599589af4e333422639d7e873207dd323fdd6e808commit-bot@chromium.org    const Expectations& fExpectations;
3615a140599942f70e47380e3f700a825c7cece3b4commit-bot@chromium.org    const SkColorType fColorType;
37d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com};
38d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com
39d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com}  // namespace DM
40d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com
41ef57b7e65330d5f794a513630517907500f1c1d0commit-bot@chromium.org#endif // DMCpuGMTask_DEFINED
42