Home | History | Annotate | Download | only in dm
      1 #ifndef DMTileGridTask_DEFINED
      2 #define DMTileGridTask_DEFINED
      3 
      4 #include "DMTask.h"
      5 #include "SkBitmap.h"
      6 #include "SkString.h"
      7 #include "SkTemplates.h"
      8 #include "gm.h"
      9 
     10 // Records a GM through an SkPicture, draws it in tiles, and compares against the reference bitmap.
     11 
     12 namespace DM {
     13 
     14 class TileGridTask : public Task {
     15 
     16 public:
     17     TileGridTask(const Task& parent,  // TileGridTask must be a child task.  Pass its parent here.
     18                  skiagm::GM*,         // GM to run through a picture.  Takes ownership.
     19                  SkBitmap reference,  // Bitmap to compare picture replay results to.
     20                  SkISize tileSize);   // Tile size to use.
     21 
     22     virtual void draw() SK_OVERRIDE;
     23     virtual bool usesGpu() const SK_OVERRIDE { return false; }
     24     virtual bool shouldSkip() const SK_OVERRIDE;
     25     virtual SkString name() const SK_OVERRIDE { return fName; }
     26 
     27 private:
     28     const SkString fName;
     29     SkAutoTDelete<skiagm::GM> fGM;
     30     const SkBitmap fReference;
     31     const SkISize fTileSize;
     32 };
     33 
     34 }  // namespace DM
     35 
     36 #endif  // DMReplayTask_DEFINED
     37