support both box and circle lcd
BUG=skia:
TBR=
Review URL: https://codereview.chromium.org/1292943003
diff --git a/samplecode/SampleApp.cpp b/samplecode/SampleApp.cpp
index 55a9aac..ae9c88b 100644
--- a/samplecode/SampleApp.cpp
+++ b/samplecode/SampleApp.cpp
@@ -1121,7 +1121,7 @@
* Like drawBitmapRect but we manually draw each pixels in RGB
*/
static void show_lcd_grid(SkCanvas* canvas, const SkBitmap& bitmap,
- const SkIRect& origSrc, const SkRect& dst) {
+ const SkIRect& origSrc, const SkRect& dst, ShowLCDProc proc) {
SkIRect src;
if (!src.intersect(origSrc, bitmap.bounds())) {
return;
@@ -1133,11 +1133,6 @@
canvas->translate(dst.left(), dst.top());
canvas->scale(sx, sy);
- ShowLCDProc proc = show_lcd_box;
- if (true) {
- proc = show_lcd_circle;
- }
-
for (int y = 0; y < src.height(); ++y) {
for (int x = 0; x < src.width(); ++x) {
proc(canvas, SkIntToScalar(x), SkIntToScalar(y),
@@ -1173,10 +1168,16 @@
// Clear the background behind our zoomed in view
paint.setColor(SK_ColorWHITE);
canvas->drawRect(dest, paint);
- if (fFatBitsScale < kMaxFatBitsScale) {
- canvas->drawBitmapRect(bitmap, src, dest, NULL);
- } else {
- show_lcd_grid(canvas, bitmap, src, dest);
+ switch (fFatBitsScale) {
+ case kMaxFatBitsScale:
+ show_lcd_grid(canvas, bitmap, src, dest, show_lcd_box);
+ break;
+ case kMaxFatBitsScale - 1:
+ show_lcd_grid(canvas, bitmap, src, dest, show_lcd_circle);
+ break;
+ default:
+ canvas->drawBitmapRect(bitmap, src, dest, NULL);
+ break;
}
paint.setColor(SK_ColorBLACK);