Index: gm/fontcache.cpp |
diff --git a/gm/fontcache.cpp b/gm/fontcache.cpp |
index 1260eeb76f3a09428af3ff82da1b1958256d2740..74ec18a4506c86a9b3192365b43f81d93f9150c5 100644 |
--- a/gm/fontcache.cpp |
+++ b/gm/fontcache.cpp |
@@ -13,15 +13,15 @@ |
// GM to stress the GPU font cache |
const char* gFamilyNames[] = { |
- "sans-serif", "serif" |
+ "sans-serif", "serif", "monospace" |
}; |
const SkTypeface::Style gStyles[] = { |
- SkTypeface::kNormal, SkTypeface::kItalic, SkTypeface::kBold |
+ SkTypeface::kNormal, SkTypeface::kItalic |
}; |
const SkScalar gTextSizes[] = { |
- 192, 194, 196, 198, 200, 202, 204, 206 |
+ 12, 14, 16, 18, 20, 22, 24, 26, 28, 30 |
}; |
#define TYPEFACE_COUNT (SK_ARRAY_COUNT(gFamilyNames)*SK_ARRAY_COUNT(gStyles)) |
@@ -52,7 +52,7 @@ protected: |
} |
virtual SkISize onISize() SK_OVERRIDE { |
- return SkISize::Make(1280, 640); |
+ return SkISize::Make(640, 320); |
} |
virtual void onOnceBeforeDraw() SK_OVERRIDE { |
@@ -72,19 +72,35 @@ protected: |
paint.setLCDRenderText(true); |
paint.setSubpixelText(true); |
- SkString text("H"); |
+ SkString text("Ham"); |
- // draw enough to overflow the cache |
+ // draw some initial text to partially fill the GPU cache |
+ for (size_t i = 0; i < 2; ++i) { |
+ paint.setTypeface(fTypefaces[i]); |
+ SkScalar x = 20; |
+ |
+ for (size_t j = 0; j < SK_ARRAY_COUNT(gTextSizes); ++j) { |
+ paint.setTextSize(gTextSizes[j]); |
+ x = draw_string(canvas, text, x, y, paint) + 19; |
+ } |
+ y += 32; |
+ } |
+ |
+ // force a flush |
+ canvas->flush(); |
+ |
+ // draw again, and more to overflow the cache |
for (size_t i = 0; i < TYPEFACE_COUNT; ++i) { |
paint.setTypeface(fTypefaces[i]); |
SkScalar x = 20; |
for (size_t j = 0; j < SK_ARRAY_COUNT(gTextSizes); ++j) { |
paint.setTextSize(gTextSizes[j]); |
- x = draw_string(canvas, text, x, y, paint) + 10; |
+ x = draw_string(canvas, text, x, y, paint) + 19; |
} |
- y += 128; |
+ y += 32; |
} |
+ |
} |
virtual uint32_t onGetFlags() const SK_OVERRIDE { |