Index: gm/tilemodes.cpp |
diff --git a/gm/tilemodes.cpp b/gm/tilemodes.cpp |
index a11ff4ebb9c3e013cda4be2ae7c956cab3527f86..be7f924f7903a913e0217816f9e6e190e4a440e7 100644 |
--- a/gm/tilemodes.cpp |
+++ b/gm/tilemodes.cpp |
@@ -54,35 +54,46 @@ static const SkBitmap::Config gConfigs[] = { |
SkBitmap::kARGB_8888_Config, |
SkBitmap::kRGB_565_Config, |
}; |
-static const int gWidth = 32; |
-static const int gHeight = 32; |
class TilingGM : public skiagm::GM { |
SkBlurDrawLooper fLooper; |
public: |
- TilingGM() |
- : fLooper(SkIntToScalar(1), SkIntToScalar(2), SkIntToScalar(2), |
- 0x88000000) { |
+ TilingGM(bool powerOfTwoSize) |
+ : fLooper(SkIntToScalar(1), SkIntToScalar(2), SkIntToScalar(2), 0x88000000) |
+ , fPowerOfTwoSize(powerOfTwoSize) { |
} |
SkBitmap fTexture[SK_ARRAY_COUNT(gConfigs)]; |
protected: |
+ |
+ enum { |
+ kPOTSize = 32, |
+ kNPOTSize = 21, |
+ }; |
+ |
SkString onShortName() { |
- return SkString("tilemodes"); |
+ SkString name("tilemodes"); |
+ if (!fPowerOfTwoSize) { |
+ name.append("_npot"); |
+ } |
+ return name; |
} |
SkISize onISize() { return SkISize::Make(880, 560); } |
virtual void onOnceBeforeDraw() SK_OVERRIDE { |
+ int size = fPowerOfTwoSize ? kPOTSize : kNPOTSize; |
for (size_t i = 0; i < SK_ARRAY_COUNT(gConfigs); i++) { |
- makebm(&fTexture[i], gConfigs[i], gWidth, gHeight); |
+ makebm(&fTexture[i], gConfigs[i], size, size); |
} |
} |
virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE { |
- SkRect r = { 0, 0, SkIntToScalar(gWidth*2), SkIntToScalar(gHeight*2) }; |
+ int size = fPowerOfTwoSize ? kPOTSize : kNPOTSize; |
+ |
+ SkRect r = { 0, 0, SkIntToScalar(size*2), SkIntToScalar(size*2) }; |
static const char* gConfigNames[] = { "8888", "565", "4444" }; |
@@ -145,9 +156,13 @@ protected: |
} |
private: |
+ bool fPowerOfTwoSize; |
typedef skiagm::GM INHERITED; |
}; |
+static const int gWidth = 32; |
+static const int gHeight = 32; |
+ |
static SkShader* make_bm(SkShader::TileMode tx, SkShader::TileMode ty) { |
SkBitmap bm; |
makebm(&bm, SkBitmap::kARGB_8888_Config, gWidth, gHeight); |
@@ -248,6 +263,7 @@ private: |
////////////////////////////////////////////////////////////////////////////// |
-DEF_GM( return new TilingGM; ) |
+DEF_GM( return new TilingGM(true); ) |
+DEF_GM( return new TilingGM(false); ) |
DEF_GM( return new Tiling2GM(make_bm, "bitmap"); ) |
DEF_GM( return new Tiling2GM(make_grad, "gradient"); ) |