1 #ifndef DMPipeTask_DEFINED 2 #define DMPipeTask_DEFINED 3 4 #include "DMTask.h" 5 #include "SkBitmap.h" 6 #include "SkString.h" 7 #include "SkTemplates.h" 8 #include "gm.h" 9 10 // Sends a GM through a pipe, draws it, and compares against the reference bitmap. 11 12 namespace DM { 13 14 class PipeTask : public Task { 15 16 public: 17 PipeTask(const Task& parent, // PipeTask must be a child task. Pass its parent here. 18 skiagm::GM*, // GM to run through a pipe. Takes ownership. 19 SkBitmap reference, // Bitmap to compare pipe results to. 20 bool crossProcess, // Should we set up a cross process pipe? 21 bool sharedAddressSpace); // If cross process, should it assume shared address space? 22 23 virtual void draw() SK_OVERRIDE; 24 virtual bool usesGpu() const SK_OVERRIDE { return false; } 25 virtual bool shouldSkip() const SK_OVERRIDE; 26 virtual SkString name() const SK_OVERRIDE { return fName; } 27 28 private: 29 const uint32_t fFlags; 30 const SkString fName; 31 SkAutoTDelete<skiagm::GM> fGM; 32 const SkBitmap fReference; 33 }; 34 35 } // namespace DM 36 37 #endif // DMPipeTask_DEFINED 38