aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2011-09-19 19:08:33 +0000
committerGravatar reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2011-09-19 19:08:33 +0000
commitfbc21172885fe1f028594bc9b181246c71eb106c (patch)
tree9d0902bd42df6724a74cc252c0794061aedccff0
parentab9739777cc84bf6c7e86372ade87a4ec468d1e6 (diff)
add getFlags() to gm baseclass
skip PDF for hairmodes for now, since it crashes git-svn-id: http://skia.googlecode.com/svn/trunk@2282 2bbb7eff-a529-9590-31e7-b0007b416f81
-rw-r--r--gm/gm.h10
-rw-r--r--gm/gmmain.cpp11
-rw-r--r--gm/hairmodes.cpp4
3 files changed, 18 insertions, 7 deletions
diff --git a/gm/gm.h b/gm/gm.h
index d8a975166e..403503479d 100644
--- a/gm/gm.h
+++ b/gm/gm.h
@@ -30,6 +30,11 @@ namespace skiagm {
GM();
virtual ~GM();
+ enum Flags {
+ kSkipPDF_Flag = 1 << 0,
+ kSkipPicture_Flag = 1 << 1
+ };
+
void draw(SkCanvas*);
SkISize getISize() { return this->onISize(); }
const char* shortName() {
@@ -39,12 +44,15 @@ namespace skiagm {
return fShortName.c_str();
}
- virtual bool validForPicture() const { return true; }
+ uint32_t getFlags() const {
+ return this->onGetFlags();
+ }
protected:
virtual void onDraw(SkCanvas*) = 0;
virtual SkISize onISize() = 0;
virtual SkString onShortName() = 0;
+ virtual uint32_t onGetFlags() const { return 0; }
private:
SkString fShortName;
diff --git a/gm/gmmain.cpp b/gm/gmmain.cpp
index a8178c40c2..a6930c602b 100644
--- a/gm/gmmain.cpp
+++ b/gm/gmmain.cpp
@@ -435,10 +435,6 @@ static bool test_picture_playback(GM* gm,
const SkBitmap& comparisonBitmap,
const char readPath [],
const char diffPath []) {
- if (!gm->validForPicture()) {
- return true;
- }
-
SkPicture* pict = generate_new_picture(gm);
SkAutoUnref aur(pict);
@@ -607,7 +603,10 @@ int main(int argc, char * const argv[]) {
SkBitmap forwardRenderedBitmap;
for (size_t i = 0; i < SK_ARRAY_COUNT(gRec); i++) {
- if ((kPDF_Backend == gRec[i].fBackend) && !doPDF) {
+ uint32_t gmFlags = gm->getFlags();
+
+ if ((kPDF_Backend == gRec[i].fBackend) && !doPDF ||
+ (gmFlags & GM::kSkipPDF_Flag)) {
continue;
}
@@ -616,7 +615,7 @@ int main(int argc, char * const argv[]) {
rt, &forwardRenderedBitmap);
overallSuccess &= testSuccess;
- if (doReplay && testSuccess) {
+ if (doReplay && testSuccess && !(gmFlags & GM::kSkipPicture_Flag)) {
testSuccess = test_picture_playback(gm, gRec[i],
forwardRenderedBitmap,
readPath, diffPath);
diff --git a/gm/hairmodes.cpp b/gm/hairmodes.cpp
index f5c7e513cd..cbbfe86da9 100644
--- a/gm/hairmodes.cpp
+++ b/gm/hairmodes.cpp
@@ -138,6 +138,10 @@ namespace skiagm {
canvas->translate(W * 5 / 4, 0);
}
}
+
+ // disable pdf for now, since it crashes on mac
+ virtual uint32_t onGetFlags() const { return kSkipPDF_Flag; }
+
private:
typedef GM INHERITED;
};