1d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com#ifndef DMReplayTask_DEFINED 2d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com#define DMReplayTask_DEFINED 3d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com 4d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com#include "DMTask.h" 5d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com#include "SkBitmap.h" 6d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com#include "SkString.h" 7d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com#include "SkTemplates.h" 8d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com#include "gm.h" 9d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com 1066bb3d1f5e451f8501f5c28d1dc28fcef6e908e1commit-bot@chromium.org// Records a GM through an SkPicture, draws it, and compares against the reference bitmap. 11d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com 12d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.comnamespace DM { 13d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com 14ef57b7e65330d5f794a513630517907500f1c1d0commit-bot@chromium.orgclass ReplayTask : public CpuTask { 15d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com 16d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.compublic: 1790b5a2a653b312ff9bcd7102412da2dbeb52368ccommit-bot@chromium.org enum Mode { 1890b5a2a653b312ff9bcd7102412da2dbeb52368ccommit-bot@chromium.org kNormal_Mode, 1990b5a2a653b312ff9bcd7102412da2dbeb52368ccommit-bot@chromium.org kRTree_Mode, 2090b5a2a653b312ff9bcd7102412da2dbeb52368ccommit-bot@chromium.org }; 21c1362424b864ee3ae7aa44971985e5481057363acommit-bot@chromium.org ReplayTask(const Task& parent, // ReplayTask must be a child task. Pass its parent here. 22d6bab0238655dbab24dfe92bd0b16b464310a8c7rmistry@google.com skiagm::GM*, // GM to run through a picture. Takes ownership. 23d6bab0238655dbab24dfe92bd0b16b464310a8c7rmistry@google.com SkBitmap reference, // Bitmap to compare picture replay results to. 2490b5a2a653b312ff9bcd7102412da2dbeb52368ccommit-bot@chromium.org Mode); 25d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com 26d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com virtual void draw() SK_OVERRIDE; 27d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com virtual bool shouldSkip() const SK_OVERRIDE; 28d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com virtual SkString name() const SK_OVERRIDE { return fName; } 29d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com 30d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.comprivate: 3190b5a2a653b312ff9bcd7102412da2dbeb52368ccommit-bot@chromium.org const bool fUseRTree; 32d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com const SkString fName; 33d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com SkAutoTDelete<skiagm::GM> fGM; 3466bb3d1f5e451f8501f5c28d1dc28fcef6e908e1commit-bot@chromium.org const SkBitmap fReference; 35d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com}; 36d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com 37d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com} // namespace DM 38d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com 39d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com#endif // DMReplayTask_DEFINED 40