Index: gm/bitmapscroll.cpp |
diff --git a/gm/bitmapscroll.cpp b/gm/bitmapscroll.cpp |
deleted file mode 100644 |
index 0603c3c4721d66fe82a2eff55c265654f45ea03c..0000000000000000000000000000000000000000 |
--- a/gm/bitmapscroll.cpp |
+++ /dev/null |
@@ -1,155 +0,0 @@ |
- |
-/* |
- * Copyright 2011 Google Inc. |
- * |
- * Use of this source code is governed by a BSD-style license that can be |
- * found in the LICENSE file. |
- */ |
-#include "gm.h" |
- |
-namespace skiagm { |
- |
-/** Create a bitmap image suitable for testing SkBitmap::scrollRect(). |
- * |
- * @param quarterWidth bitmap will be 4x this many pixels wide |
- * @param quarterHeight bitmap will be 4x this many pixels tall |
- * @param bitmap the bitmap data is written into this object |
- */ |
-static void make_bitmap(int quarterWidth, int quarterHeight, SkBitmap *bitmap) { |
- SkPaint pRed, pWhite, pGreen, pBlue, pLine, pAlphaGray; |
- pRed.setColor(0xFFFF9999); |
- pWhite.setColor(0xFFFFFFFF); |
- pGreen.setColor(0xFF99FF99); |
- pBlue.setColor(0xFF9999FF); |
- pLine.setColor(0xFF000000); |
- pLine.setStyle(SkPaint::kStroke_Style); |
- pAlphaGray.setColor(0x66888888); |
- |
- // Prepare bitmap, and a canvas that draws into it. |
- bitmap->allocN32Pixels(quarterWidth*4, quarterHeight*4); |
- SkCanvas canvas(*bitmap); |
- |
- SkScalar w = SkIntToScalar(quarterWidth); |
- SkScalar h = SkIntToScalar(quarterHeight); |
- canvas.drawRectCoords( 0, 0, w*2, h*2, pRed); |
- canvas.drawRectCoords(w*2, 0, w*4, h*2, pGreen); |
- canvas.drawRectCoords( 0, h*2, w*2, h*4, pBlue); |
- canvas.drawRectCoords(w*2, h*2, w*4, h*4, pWhite); |
- canvas.drawRectCoords(w, h, w*3, h*3, pAlphaGray); |
- canvas.drawLine(w*2, 0, w*2, h*4, pLine); |
- canvas.drawLine( 0, h*2, w*4, h*2, pLine); |
- canvas.drawRectCoords(w, h, w*3, h*3, pLine); |
-} |
- |
-class BitmapScrollGM : public GM { |
- bool fInited; |
- void init() { |
- if (fInited) { |
- return; |
- } |
- fInited = true; |
- // Create the original bitmap. |
- make_bitmap(quarterWidth, quarterHeight, &origBitmap); |
- } |
- |
-public: |
- BitmapScrollGM() { |
- fInited = false; |
- this->setBGColor(0xFFDDDDDD); |
- } |
- |
-protected: |
- SkString onShortName() override { |
- return SkString("bitmapscroll"); |
- } |
- |
- SkISize onISize() override { |
- return SkISize::Make(800, 600); |
- } |
- |
- void onDraw(SkCanvas* canvas) override { |
- this->init(); |
- SkIRect scrollCenterRegion = SkIRect::MakeXYWH( |
- quarterWidth, quarterHeight, quarterWidth*2+1, quarterHeight*2+1); |
- int x = quarterWidth; |
- int y = quarterHeight; |
- int xSpacing = quarterWidth * 20; |
- int ySpacing = quarterHeight * 16; |
- |
- // Draw left-hand text labels. |
- drawLabel(canvas, "scroll entire bitmap", |
- x, y, x, y + ySpacing); |
- drawLabel(canvas, "scroll part of bitmap", |
- x, y + ySpacing, x, y + ySpacing*2); |
- x += 30; |
- |
- // Draw various permutations of scrolled bitmaps, scrolling a bit |
- // further each time. |
- draw9(canvas, x, y, NULL, quarterWidth*1/2, quarterHeight*1/2); |
- draw9(canvas, x, y+ySpacing, &scrollCenterRegion, |
- quarterWidth*1/2, quarterHeight*1/2); |
- x += xSpacing; |
- draw9(canvas, x, y, NULL, quarterWidth*3/2, quarterHeight*3/2); |
- draw9(canvas, x, y+ySpacing, &scrollCenterRegion, |
- quarterWidth*3/2, quarterHeight*3/2); |
- x += xSpacing; |
- draw9(canvas, x, y, NULL, quarterWidth*5/2, quarterHeight*5/2); |
- draw9(canvas, x, y+ySpacing, &scrollCenterRegion, |
- quarterWidth*5/2, quarterHeight*5/2); |
- x += xSpacing; |
- draw9(canvas, x, y, NULL, quarterWidth*9/2, quarterHeight*9/2); |
- draw9(canvas, x, y+ySpacing, &scrollCenterRegion, |
- quarterWidth*9/2, quarterHeight*9/2); |
- } |
- |
- void drawLabel(SkCanvas* canvas, const char *text, int startX, int startY, |
- int endX, int endY) { |
- SkPaint paint; |
- sk_tool_utils::set_portable_typeface(&paint); |
- paint.setColor(0xFF000000); |
- SkPath path; |
- path.moveTo(SkIntToScalar(startX), SkIntToScalar(startY)); |
- path.lineTo(SkIntToScalar(endX), SkIntToScalar(endY)); |
- canvas->drawTextOnPath(text, strlen(text), path, NULL, paint); |
- } |
- |
- /** Stamp out 9 copies of origBitmap, scrolled in each direction (and |
- * not scrolled at all). |
- */ |
- void draw9(SkCanvas* canvas, int x, int y, SkIRect* subset, |
- int scrollX, int scrollY) { |
- for (int yMult=-1; yMult<=1; yMult++) { |
- for (int xMult=-1; xMult<=1; xMult++) { |
- // Figure out the (x,y) to draw this copy at |
- SkScalar bitmapX = SkIntToScalar( |
- x + quarterWidth * 5 * (xMult+1)); |
- SkScalar bitmapY = SkIntToScalar( |
- y + quarterHeight * 5 * (yMult+1)); |
- |
- // Scroll a new copy of the bitmap, and then draw it. |
- // scrollRect() should always return true, even if it's a no-op |
- SkBitmap scrolledBitmap; |
- SkDEBUGCODE(bool copyToReturnValue = )origBitmap.copyTo( |
- &scrolledBitmap, origBitmap.colorType()); |
- SkASSERT(copyToReturnValue); |
- SkDEBUGCODE(bool scrollRectReturnValue = )scrolledBitmap.scrollRect( |
- subset, scrollX * xMult, scrollY * yMult); |
- SkASSERT(scrollRectReturnValue); |
- canvas->drawBitmap(scrolledBitmap, bitmapX, bitmapY); |
- } |
- } |
- } |
- |
-private: |
- typedef GM INHERITED; |
- static const int quarterWidth = 10; |
- static const int quarterHeight = 14; |
- SkBitmap origBitmap; |
-}; |
- |
-////////////////////////////////////////////////////////////////////////////// |
- |
-static GM* MyFactory(void*) { return new BitmapScrollGM; } |
-static GMRegistry reg(MyFactory); |
- |
-} |