Index: gm/bleed.cpp |
diff --git a/gm/bleed.cpp b/gm/bleed.cpp |
index 75cf8ca9a5d564511f3995cd91200535800d80db..a96917baa227439e26c18d50b2db13d477037b0f 100644 |
--- a/gm/bleed.cpp |
+++ b/gm/bleed.cpp |
@@ -12,6 +12,7 @@ |
#if SK_SUPPORT_GPU |
#include "GrContext.h" |
+#include "GrContextOptions.h" |
#endif |
// Create a black&white checked texture with 2 1-pixel rings |
@@ -188,67 +189,52 @@ protected: |
canvas->scale(0.71f, 1.22f); |
} |
- // First draw a column with no bleeding, tiling, or filtering |
+ // First draw a column with no bleeding and no filtering |
this->drawCase1(canvas, kCol0X, kRow0Y, SkCanvas::kNone_DrawBitmapRectFlag, kNone_SkFilterQuality); |
this->drawCase2(canvas, kCol0X, kRow1Y, SkCanvas::kNone_DrawBitmapRectFlag, kNone_SkFilterQuality); |
this->drawCase3(canvas, kCol0X, kRow2Y, SkCanvas::kNone_DrawBitmapRectFlag, kNone_SkFilterQuality); |
this->drawCase4(canvas, kCol0X, kRow3Y, SkCanvas::kNone_DrawBitmapRectFlag, kNone_SkFilterQuality); |
- // Then draw a column with no bleeding or tiling but with low filtering |
+ // Then draw a column with no bleeding and low filtering |
this->drawCase1(canvas, kCol1X, kRow0Y, SkCanvas::kNone_DrawBitmapRectFlag, kLow_SkFilterQuality); |
this->drawCase2(canvas, kCol1X, kRow1Y, SkCanvas::kNone_DrawBitmapRectFlag, kLow_SkFilterQuality); |
this->drawCase3(canvas, kCol1X, kRow2Y, SkCanvas::kNone_DrawBitmapRectFlag, kLow_SkFilterQuality); |
this->drawCase4(canvas, kCol1X, kRow3Y, SkCanvas::kNone_DrawBitmapRectFlag, kLow_SkFilterQuality); |
- // Then draw a column with no bleeding or tiling but with high filtering |
+ // Then draw a column with no bleeding and high filtering |
this->drawCase1(canvas, kCol2X, kRow0Y, SkCanvas::kNone_DrawBitmapRectFlag, kHigh_SkFilterQuality); |
this->drawCase2(canvas, kCol2X, kRow1Y, SkCanvas::kNone_DrawBitmapRectFlag, kHigh_SkFilterQuality); |
this->drawCase3(canvas, kCol2X, kRow2Y, SkCanvas::kNone_DrawBitmapRectFlag, kHigh_SkFilterQuality); |
this->drawCase4(canvas, kCol2X, kRow3Y, SkCanvas::kNone_DrawBitmapRectFlag, kHigh_SkFilterQuality); |
-#if SK_SUPPORT_GPU |
- GrContext* ctx = canvas->getGrContext(); |
- int oldMaxTextureSize = 0; |
- if (ctx) { |
- // shrink the max texture size so all our textures can be reasonably sized |
- oldMaxTextureSize = ctx->getMaxTextureSize(); |
- ctx->setMaxTextureSizeOverride(kMaxTextureSize); |
- } |
-#endif |
+ // Then draw a column with bleeding and no filtering (bleed should have no effect w/out blur) |
+ this->drawCase1(canvas, kCol3X, kRow0Y, SkCanvas::kBleed_DrawBitmapRectFlag, kNone_SkFilterQuality); |
+ this->drawCase2(canvas, kCol3X, kRow1Y, SkCanvas::kBleed_DrawBitmapRectFlag, kNone_SkFilterQuality); |
+ this->drawCase3(canvas, kCol3X, kRow2Y, SkCanvas::kBleed_DrawBitmapRectFlag, kNone_SkFilterQuality); |
+ this->drawCase4(canvas, kCol3X, kRow3Y, SkCanvas::kBleed_DrawBitmapRectFlag, kNone_SkFilterQuality); |
- // Then draw a column with no bleeding but with tiling and low filtering |
- this->drawCase1(canvas, kCol3X, kRow0Y, SkCanvas::kNone_DrawBitmapRectFlag, kLow_SkFilterQuality); |
- this->drawCase2(canvas, kCol3X, kRow1Y, SkCanvas::kNone_DrawBitmapRectFlag, kLow_SkFilterQuality); |
- this->drawCase3(canvas, kCol3X, kRow2Y, SkCanvas::kNone_DrawBitmapRectFlag, kLow_SkFilterQuality); |
- this->drawCase4(canvas, kCol3X, kRow3Y, SkCanvas::kNone_DrawBitmapRectFlag, kLow_SkFilterQuality); |
- |
- // Then draw a column with no bleeding but with tiling and high filtering |
- this->drawCase1(canvas, kCol4X, kRow0Y, SkCanvas::kNone_DrawBitmapRectFlag, kHigh_SkFilterQuality); |
- this->drawCase2(canvas, kCol4X, kRow1Y, SkCanvas::kNone_DrawBitmapRectFlag, kHigh_SkFilterQuality); |
- this->drawCase3(canvas, kCol4X, kRow2Y, SkCanvas::kNone_DrawBitmapRectFlag, kHigh_SkFilterQuality); |
- this->drawCase4(canvas, kCol4X, kRow3Y, SkCanvas::kNone_DrawBitmapRectFlag, kHigh_SkFilterQuality); |
- |
- // Then draw a column with bleeding, tiling, and low filtering |
- this->drawCase1(canvas, kCol5X, kRow0Y, SkCanvas::kBleed_DrawBitmapRectFlag, kLow_SkFilterQuality); |
- this->drawCase2(canvas, kCol5X, kRow1Y, SkCanvas::kBleed_DrawBitmapRectFlag, kLow_SkFilterQuality); |
- this->drawCase3(canvas, kCol5X, kRow2Y, SkCanvas::kBleed_DrawBitmapRectFlag, kLow_SkFilterQuality); |
- this->drawCase4(canvas, kCol5X, kRow3Y, SkCanvas::kBleed_DrawBitmapRectFlag, kLow_SkFilterQuality); |
- |
- // Finally draw a column with bleeding, tiling, and high filtering |
- this->drawCase1(canvas, kCol6X, kRow0Y, SkCanvas::kBleed_DrawBitmapRectFlag, kHigh_SkFilterQuality); |
- this->drawCase2(canvas, kCol6X, kRow1Y, SkCanvas::kBleed_DrawBitmapRectFlag, kHigh_SkFilterQuality); |
- this->drawCase3(canvas, kCol6X, kRow2Y, SkCanvas::kBleed_DrawBitmapRectFlag, kHigh_SkFilterQuality); |
- this->drawCase4(canvas, kCol6X, kRow3Y, SkCanvas::kBleed_DrawBitmapRectFlag, kHigh_SkFilterQuality); |
+ // Then draw a column with bleeding and low filtering |
+ this->drawCase1(canvas, kCol4X, kRow0Y, SkCanvas::kBleed_DrawBitmapRectFlag, kLow_SkFilterQuality); |
+ this->drawCase2(canvas, kCol4X, kRow1Y, SkCanvas::kBleed_DrawBitmapRectFlag, kLow_SkFilterQuality); |
+ this->drawCase3(canvas, kCol4X, kRow2Y, SkCanvas::kBleed_DrawBitmapRectFlag, kLow_SkFilterQuality); |
+ this->drawCase4(canvas, kCol4X, kRow3Y, SkCanvas::kBleed_DrawBitmapRectFlag, kLow_SkFilterQuality); |
+ |
+ // Finally draw a column with bleeding and high filtering |
+ this->drawCase1(canvas, kCol5X, kRow0Y, SkCanvas::kBleed_DrawBitmapRectFlag, kHigh_SkFilterQuality); |
+ this->drawCase2(canvas, kCol5X, kRow1Y, SkCanvas::kBleed_DrawBitmapRectFlag, kHigh_SkFilterQuality); |
+ this->drawCase3(canvas, kCol5X, kRow2Y, SkCanvas::kBleed_DrawBitmapRectFlag, kHigh_SkFilterQuality); |
+ this->drawCase4(canvas, kCol5X, kRow3Y, SkCanvas::kBleed_DrawBitmapRectFlag, kHigh_SkFilterQuality); |
-#if SK_SUPPORT_GPU |
- if (ctx) { |
- ctx->setMaxTextureSizeOverride(oldMaxTextureSize); |
- } |
-#endif |
canvas->restore(); |
} |
} |
+#if SK_SUPPORT_GPU |
+ void modifyGrContextOptions(GrContextOptions* options) override { |
+ options->fMaxTextureSizeOverride = kMaxTextureSize; |
+ } |
+#endif |
+ |
private: |
static const int kBlockSize = 70; |
static const int kBlockSpacing = 5; |
@@ -259,8 +245,7 @@ private: |
static const int kCol3X = 4*kBlockSpacing + 3*kBlockSize; |
static const int kCol4X = 5*kBlockSpacing + 4*kBlockSize; |
static const int kCol5X = 6*kBlockSpacing + 5*kBlockSize; |
- static const int kCol6X = 7*kBlockSpacing + 6*kBlockSize; |
- static const int kWidth = 8*kBlockSpacing + 7*kBlockSize; |
+ static const int kWidth = 7*kBlockSpacing + 6*kBlockSize; |
static const int kRow0Y = kBlockSpacing; |
static const int kRow1Y = 2*kBlockSpacing + kBlockSize; |