1a90c6803865766d28e92091f56f718f5e41fe80fcommit-bot@chromium.org#ifndef DMQuiltTask_DEFINED 2a90c6803865766d28e92091f56f718f5e41fe80fcommit-bot@chromium.org#define DMQuiltTask_DEFINED 309f25791091db15a61083169cfda9feda0e653f6mtklein@google.com 409f25791091db15a61083169cfda9feda0e653f6mtklein@google.com#include "DMTask.h" 509f25791091db15a61083169cfda9feda0e653f6mtklein@google.com#include "SkBitmap.h" 609f25791091db15a61083169cfda9feda0e653f6mtklein@google.com#include "SkString.h" 709f25791091db15a61083169cfda9feda0e653f6mtklein@google.com#include "SkTemplates.h" 809f25791091db15a61083169cfda9feda0e653f6mtklein@google.com#include "gm.h" 909f25791091db15a61083169cfda9feda0e653f6mtklein@google.com 1009f25791091db15a61083169cfda9feda0e653f6mtklein@google.com// Records a GM through an SkPicture, draws it in tiles, and compares against the reference bitmap. 1109f25791091db15a61083169cfda9feda0e653f6mtklein@google.com 1209f25791091db15a61083169cfda9feda0e653f6mtklein@google.comnamespace DM { 1309f25791091db15a61083169cfda9feda0e653f6mtklein@google.com 14a90c6803865766d28e92091f56f718f5e41fe80fcommit-bot@chromium.orgclass QuiltTask : public CpuTask { 1509f25791091db15a61083169cfda9feda0e653f6mtklein@google.compublic: 165ad6ee1b2ce54f8e59b9f5a337c688a98a4b0f2amtklein enum BBH { 175ad6ee1b2ce54f8e59b9f5a337c688a98a4b0f2amtklein kNone_BBH, 185ad6ee1b2ce54f8e59b9f5a337c688a98a4b0f2amtklein kRTree_BBH, 195ad6ee1b2ce54f8e59b9f5a337c688a98a4b0f2amtklein kTileGrid_BBH, 205ad6ee1b2ce54f8e59b9f5a337c688a98a4b0f2amtklein }; 215ad6ee1b2ce54f8e59b9f5a337c688a98a4b0f2amtklein enum Backend { 225ad6ee1b2ce54f8e59b9f5a337c688a98a4b0f2amtklein kDefault_Backend, 235ad6ee1b2ce54f8e59b9f5a337c688a98a4b0f2amtklein kSkRecord_Backend, 247cdc1ee11545a10708e857adf1d4a94a2f1e2a48mtklein }; 257cdc1ee11545a10708e857adf1d4a94a2f1e2a48mtklein 267cdc1ee11545a10708e857adf1d4a94a2f1e2a48mtklein QuiltTask(const Task& parent, // QuiltTask must be a child task. Pass its parent here. 277cdc1ee11545a10708e857adf1d4a94a2f1e2a48mtklein skiagm::GM*, // GM to run through a picture. Takes ownership. 287cdc1ee11545a10708e857adf1d4a94a2f1e2a48mtklein SkBitmap reference, // Bitmap to compare picture replay results to. 295ad6ee1b2ce54f8e59b9f5a337c688a98a4b0f2amtklein BBH, Backend); 3009f25791091db15a61083169cfda9feda0e653f6mtklein@google.com 3109f25791091db15a61083169cfda9feda0e653f6mtklein@google.com virtual void draw() SK_OVERRIDE; 3209f25791091db15a61083169cfda9feda0e653f6mtklein@google.com virtual bool shouldSkip() const SK_OVERRIDE; 3309f25791091db15a61083169cfda9feda0e653f6mtklein@google.com virtual SkString name() const SK_OVERRIDE { return fName; } 3409f25791091db15a61083169cfda9feda0e653f6mtklein@google.com 3509f25791091db15a61083169cfda9feda0e653f6mtklein@google.comprivate: 365ad6ee1b2ce54f8e59b9f5a337c688a98a4b0f2amtklein const BBH fBBH; 375ad6ee1b2ce54f8e59b9f5a337c688a98a4b0f2amtklein const Backend fBackend; 3809f25791091db15a61083169cfda9feda0e653f6mtklein@google.com const SkString fName; 3909f25791091db15a61083169cfda9feda0e653f6mtklein@google.com SkAutoTDelete<skiagm::GM> fGM; 4009f25791091db15a61083169cfda9feda0e653f6mtklein@google.com const SkBitmap fReference; 4109f25791091db15a61083169cfda9feda0e653f6mtklein@google.com}; 4209f25791091db15a61083169cfda9feda0e653f6mtklein@google.com 4309f25791091db15a61083169cfda9feda0e653f6mtklein@google.com} // namespace DM 4409f25791091db15a61083169cfda9feda0e653f6mtklein@google.com 4509f25791091db15a61083169cfda9feda0e653f6mtklein@google.com#endif // DMReplayTask_DEFINED 46