e4636aa173
Replay isn't that helpful of a test any more now that we have the more stringent Quilt tests. Quilt was missing bounding box hierarchies, though, while Replay was sort of testing RTree (pointlessly, as it was drawing without any clip). Now Quilt does everything, testing RTree, QuadTree, and TileGrid. Quilt mode now falls back to drawing all at once (i.e. Replay) for GMs that don't tile perfectly. Still a TODO to make this check more flexible than exact pixel matches. Two GMs fail when using a BBH: - imageresizetiled - resizeimagefilter We think we're not adjusting the bounds of save layers by their paint. This is probably a bug, but one to be fixed separately from adding new tests. BUG=skia: R=robertphillips@google.com, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/377373003
44 lines
1.1 KiB
C++
44 lines
1.1 KiB
C++
#ifndef DMQuiltTask_DEFINED
|
|
#define DMQuiltTask_DEFINED
|
|
|
|
#include "DMTask.h"
|
|
#include "SkBitmap.h"
|
|
#include "SkString.h"
|
|
#include "SkTemplates.h"
|
|
#include "gm.h"
|
|
|
|
// Records a GM through an SkPicture, draws it in tiles, and compares against the reference bitmap.
|
|
|
|
namespace DM {
|
|
|
|
class QuiltTask : public CpuTask {
|
|
|
|
public:
|
|
enum Mode {
|
|
kNoBBH_Mode,
|
|
kRTree_Mode,
|
|
kQuadTree_Mode,
|
|
kTileGrid_Mode,
|
|
kSkRecord_Mode, // Currently uses no BBH.
|
|
};
|
|
|
|
QuiltTask(const Task& parent, // QuiltTask must be a child task. Pass its parent here.
|
|
skiagm::GM*, // GM to run through a picture. Takes ownership.
|
|
SkBitmap reference, // Bitmap to compare picture replay results to.
|
|
Mode mode);
|
|
|
|
virtual void draw() SK_OVERRIDE;
|
|
virtual bool shouldSkip() const SK_OVERRIDE;
|
|
virtual SkString name() const SK_OVERRIDE { return fName; }
|
|
|
|
private:
|
|
const Mode fMode;
|
|
const SkString fName;
|
|
SkAutoTDelete<skiagm::GM> fGM;
|
|
const SkBitmap fReference;
|
|
};
|
|
|
|
} // namespace DM
|
|
|
|
#endif // DMReplayTask_DEFINED
|