blob: 3c7b0082b1a71475a48edad368807606da3e1f9b [file] [log] [blame]
#include "Test.h"
#include "SkRecord.h"
#include "SkRecorder.h"
#include "SkRecords.h"
#define COUNT(T) + 1
static const int kRecordTypes = SK_RECORD_TYPES(COUNT);
#undef COUNT
// Tallies the types of commands it sees into a histogram.
class Tally {
public:
Tally() { sk_bzero(&fHistogram, sizeof(fHistogram)); }
template <typename T>
void operator()(const T&) { ++fHistogram[T::kType]; }
template <typename T>
int count() const { return fHistogram[T::kType]; }
private:
int fHistogram[kRecordTypes];
};
DEF_TEST(Recorder, r) {
SkRecord record;
SkRecorder recorder(&record, 1920, 1080);
recorder.drawRect(SkRect::MakeWH(10, 10), SkPaint());
Tally tally;
record.visit(tally);
REPORTER_ASSERT(r, 1 == tally.count<SkRecords::DrawRect>());
}