diff options
author | reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2011-09-19 19:08:33 +0000 |
---|---|---|
committer | reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2011-09-19 19:08:33 +0000 |
commit | fbc21172885fe1f028594bc9b181246c71eb106c (patch) | |
tree | 9d0902bd42df6724a74cc252c0794061aedccff0 | |
parent | ab9739777cc84bf6c7e86372ade87a4ec468d1e6 (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.h | 10 | ||||
-rw-r--r-- | gm/gmmain.cpp | 11 | ||||
-rw-r--r-- | gm/hairmodes.cpp | 4 |
3 files changed, 18 insertions, 7 deletions
@@ -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; }; |