1192cbf67b281b20477320134962d554ed823c691commit-bot@chromium.org#ifndef DMSerializeTask_DEFINED
2192cbf67b281b20477320134962d554ed823c691commit-bot@chromium.org#define DMSerializeTask_DEFINED
3192cbf67b281b20477320134962d554ed823c691commit-bot@chromium.org
4192cbf67b281b20477320134962d554ed823c691commit-bot@chromium.org#include "DMTask.h"
5192cbf67b281b20477320134962d554ed823c691commit-bot@chromium.org#include "SkBitmap.h"
6192cbf67b281b20477320134962d554ed823c691commit-bot@chromium.org#include "SkString.h"
7192cbf67b281b20477320134962d554ed823c691commit-bot@chromium.org#include "SkTemplates.h"
8192cbf67b281b20477320134962d554ed823c691commit-bot@chromium.org#include "gm.h"
9192cbf67b281b20477320134962d554ed823c691commit-bot@chromium.org
10192cbf67b281b20477320134962d554ed823c691commit-bot@chromium.org// Record a picture, serialize it, deserialize it, then draw it and compare to reference bitmap.
11192cbf67b281b20477320134962d554ed823c691commit-bot@chromium.org
12192cbf67b281b20477320134962d554ed823c691commit-bot@chromium.orgnamespace DM {
13192cbf67b281b20477320134962d554ed823c691commit-bot@chromium.org
14ef57b7e65330d5f794a513630517907500f1c1d0commit-bot@chromium.orgclass SerializeTask : public CpuTask {
15192cbf67b281b20477320134962d554ed823c691commit-bot@chromium.org
16192cbf67b281b20477320134962d554ed823c691commit-bot@chromium.orgpublic:
177373456679b809d4e7649a438f0fe5b59257e4e5mtklein    enum Mode {
187373456679b809d4e7649a438f0fe5b59257e4e5mtklein        kNormal_Mode,
197373456679b809d4e7649a438f0fe5b59257e4e5mtklein        kSkRecord_Mode,
207373456679b809d4e7649a438f0fe5b59257e4e5mtklein    };
21192cbf67b281b20477320134962d554ed823c691commit-bot@chromium.org    SerializeTask(const Task& parent,
22192cbf67b281b20477320134962d554ed823c691commit-bot@chromium.org                  skiagm::GM*,
237373456679b809d4e7649a438f0fe5b59257e4e5mtklein                  SkBitmap reference,
247373456679b809d4e7649a438f0fe5b59257e4e5mtklein                  Mode mode);
25192cbf67b281b20477320134962d554ed823c691commit-bot@chromium.org
26192cbf67b281b20477320134962d554ed823c691commit-bot@chromium.org    virtual void draw() SK_OVERRIDE;
27192cbf67b281b20477320134962d554ed823c691commit-bot@chromium.org    virtual bool shouldSkip() const SK_OVERRIDE;
28192cbf67b281b20477320134962d554ed823c691commit-bot@chromium.org    virtual SkString name() const SK_OVERRIDE { return fName; }
29192cbf67b281b20477320134962d554ed823c691commit-bot@chromium.org
30192cbf67b281b20477320134962d554ed823c691commit-bot@chromium.orgprivate:
317373456679b809d4e7649a438f0fe5b59257e4e5mtklein    const Mode fMode;
32192cbf67b281b20477320134962d554ed823c691commit-bot@chromium.org    const SkString fName;
33192cbf67b281b20477320134962d554ed823c691commit-bot@chromium.org    SkAutoTDelete<skiagm::GM> fGM;
34192cbf67b281b20477320134962d554ed823c691commit-bot@chromium.org    const SkBitmap fReference;
35192cbf67b281b20477320134962d554ed823c691commit-bot@chromium.org};
36192cbf67b281b20477320134962d554ed823c691commit-bot@chromium.org
37192cbf67b281b20477320134962d554ed823c691commit-bot@chromium.org}  // namespace DM
38192cbf67b281b20477320134962d554ed823c691commit-bot@chromium.org
39192cbf67b281b20477320134962d554ed823c691commit-bot@chromium.org#endif  // DMSerializeTask_DEFINED
40