aboutsummaryrefslogtreecommitdiffhomepage
path: root/gm
diff options
context:
space:
mode:
authorGravatar Florin Malita <fmalita@google.com>2014-12-10 12:02:16 -0500
committerGravatar Florin Malita <fmalita@google.com>2014-12-10 12:02:16 -0500
commitc54d8db4d169ea5f2af2a9a2349df007bd428475 (patch)
tree60c05374d2748ff3e11fcab4c92bb92c15990c93 /gm
parent3d6405b52d35b2a2715a2e4f561c351b028fab1a (diff)
Remove SkCanvas::drawBitmapMatrix()
R=mtklein@google.com, reed@google.com, robertphillips@google.com Review URL: https://codereview.chromium.org/789033002
Diffstat (limited to 'gm')
-rw-r--r--gm/bitmapmatrix.cpp135
-rw-r--r--gm/downsamplebitmap.cpp3
-rw-r--r--gm/filterbitmap.cpp24
-rw-r--r--gm/filterindiabox.cpp23
-rw-r--r--gm/xfermodes.cpp17
5 files changed, 36 insertions, 166 deletions
diff --git a/gm/bitmapmatrix.cpp b/gm/bitmapmatrix.cpp
deleted file mode 100644
index 052d153316..0000000000
--- a/gm/bitmapmatrix.cpp
+++ /dev/null
@@ -1,135 +0,0 @@
-
-/*
- * Copyright 2012 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"
-#include "SkBitmap.h"
-#include "SkBlurMask.h"
-#include "SkBlurMaskFilter.h"
-#include "SkCanvas.h"
-#include "SkColor.h"
-#include "SkMatrix.h"
-#include "SkPath.h"
-#include "SkRect.h"
-#include "SkSize.h"
-#include "SkString.h"
-
-namespace skiagm {
-
-class DrawBitmapMatrixGM : public GM {
-public:
- DrawBitmapMatrixGM() {}
-
-protected:
- virtual uint32_t onGetFlags() const SK_OVERRIDE {
- return kSkipTiled_Flag;
- }
-
- virtual SkString onShortName() SK_OVERRIDE {
- return SkString("drawbitmapmatrix");
- }
-
- virtual SkISize onISize() SK_OVERRIDE { return SkISize::Make(1024, 256); }
-
- virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE {
- SkBitmap bm;
- this->setupBitmap(&bm);
-
- // Draw normally.
- SkMatrix matrix;
- matrix.reset();
- SkPaint paint;
- paint.setAntiAlias(true);
- paint.setDither(true);
- canvas->drawBitmapMatrix(bm, matrix, &paint);
-
- // Draw stretched horizontally and squished vertically.
- canvas->translate(SkIntToScalar(bm.width() + 5), 0);
- matrix.setScale(SkIntToScalar(2), SK_ScalarHalf);
- canvas->drawBitmapMatrix(bm, matrix, &paint);
-
- // Draw rotated
- canvas->translate(SkIntToScalar(bm.width()*2 + 5), 0);
- matrix.reset();
- matrix.setRotate(SkIntToScalar(45), SkIntToScalar(bm.width() / 2),
- SkIntToScalar(bm.height() / 2));
- canvas->save();
- canvas->translate(0, SkIntToScalar(10));
- canvas->drawBitmapMatrix(bm, matrix, &paint);
- canvas->restore();
-
- // Draw with perspective
- canvas->translate(SkIntToScalar(bm.width() + 15), 0);
- matrix.reset();
- matrix.setPerspX(SkScalarDiv(SK_Scalar1, SkIntToScalar(1000)));
- matrix.setPerspY(SkScalarDiv(SK_Scalar1, SkIntToScalar(1000)));
- canvas->drawBitmapMatrix(bm, matrix, &paint);
-
- // Draw with skew
- canvas->translate(SkIntToScalar(bm.width() + 5), 0);
- matrix.reset();
- matrix.setSkew(SkIntToScalar(2), SkIntToScalar(2));
- canvas->drawBitmapMatrix(bm, matrix, &paint);
-
- // Draw with sin/cos
- canvas->translate(SkIntToScalar(bm.width() * 4), 0);
- matrix.reset();
- matrix.setSinCos(SK_ScalarHalf, SkIntToScalar(2));
- canvas->drawBitmapMatrix(bm, matrix, &paint);
-
- {
- // test the following code path:
- // SkGpuDevice::drawPath() -> SkGpuDevice::drawWithMaskFilter()
- SkPaint paint;
-
- paint.setFilterLevel(SkPaint::kLow_FilterLevel);
-
- SkMaskFilter* mf = SkBlurMaskFilter::Create(
- kNormal_SkBlurStyle,
- SkBlurMask::ConvertRadiusToSigma(5),
- SkBlurMaskFilter::kHighQuality_BlurFlag |
- SkBlurMaskFilter::kIgnoreTransform_BlurFlag);
- paint.setMaskFilter(mf)->unref();
-
- canvas->translate(SkIntToScalar(bm.width()*2 + 20), 0);
-
- matrix.reset();
- matrix.setRotate(SkIntToScalar(45), SkIntToScalar(bm.width() / 2),
- SkIntToScalar(bm.height() / 2));
-
- canvas->save();
- canvas->translate(0, SkIntToScalar(20));
- canvas->drawBitmapMatrix(bm, matrix, &paint);
- canvas->restore();
- }
-
- }
-private:
- void setupBitmap(SkBitmap* bm) {
- SkASSERT(bm);
- static const int SIZE = 64;
- bm->allocN32Pixels(SIZE, SIZE);
- SkCanvas canvas(*bm);
-
- SkPaint paint;
- paint.setColor(SK_ColorGREEN);
- canvas.drawPaint(paint);
-
- paint.setColor(SK_ColorBLUE);
- paint.setAntiAlias(true);
- SkRect rect = SkRect::MakeWH(SkIntToScalar(SIZE), SkIntToScalar(SIZE));
- SkPath path;
- path.addOval(rect);
- canvas.drawPath(path, paint);
- }
-};
-
-////////////////////////////////////////////////////////////////////////////////
-
-static GM* MyFactory(void*) { return new DrawBitmapMatrixGM; }
-static GMRegistry reg(MyFactory);
-
-}
diff --git a/gm/downsamplebitmap.cpp b/gm/downsamplebitmap.cpp
index 1d204fc71a..994ab9412b 100644
--- a/gm/downsamplebitmap.cpp
+++ b/gm/downsamplebitmap.cpp
@@ -78,7 +78,8 @@ protected:
canvas->save();
canvas->translate(0, (SkScalar)curY);
- canvas->drawBitmapMatrix( fBM, matrix, &paint );
+ canvas->concat(matrix);
+ canvas->drawBitmap(fBM, 0, 0, &paint);
canvas->restore();
curHeight = (int) (fBM.height() * curScale + 2);
diff --git a/gm/filterbitmap.cpp b/gm/filterbitmap.cpp
index 81aa3e19e0..d40f8bcd7c 100644
--- a/gm/filterbitmap.cpp
+++ b/gm/filterbitmap.cpp
@@ -24,24 +24,22 @@ static SkSize computeSize(const SkBitmap& bm, const SkMatrix& mat) {
return SkSize::Make(bounds.width(), bounds.height());
}
-static void draw_row(SkCanvas* canvas, const SkBitmap& bm, const SkMatrix& mat, SkScalar dx) {
+static void draw_cell(SkCanvas* canvas, const SkBitmap& bm, const SkMatrix& mat, SkScalar dx,
+ SkPaint::FilterLevel lvl) {
SkPaint paint;
+ paint.setFilterLevel(lvl);
SkAutoCanvasRestore acr(canvas, true);
-
- canvas->drawBitmapMatrix(bm, mat, &paint);
-
- paint.setFilterLevel(SkPaint::kLow_FilterLevel);
- canvas->translate(dx, 0);
- canvas->drawBitmapMatrix(bm, mat, &paint);
-
- paint.setFilterLevel(SkPaint::kMedium_FilterLevel);
canvas->translate(dx, 0);
- canvas->drawBitmapMatrix(bm, mat, &paint);
+ canvas->concat(mat);
+ canvas->drawBitmap(bm, 0, 0, &paint);
+}
- paint.setFilterLevel(SkPaint::kHigh_FilterLevel);
- canvas->translate(dx, 0);
- canvas->drawBitmapMatrix(bm, mat, &paint);
+static void draw_row(SkCanvas* canvas, const SkBitmap& bm, const SkMatrix& mat, SkScalar dx) {
+ draw_cell(canvas, bm, mat, 0 * dx, SkPaint::kNone_FilterLevel);
+ draw_cell(canvas, bm, mat, 1 * dx, SkPaint::kLow_FilterLevel);
+ draw_cell(canvas, bm, mat, 2 * dx, SkPaint::kMedium_FilterLevel);
+ draw_cell(canvas, bm, mat, 3 * dx, SkPaint::kHigh_FilterLevel);
}
class FilterBitmapGM : public skiagm::GM {
diff --git a/gm/filterindiabox.cpp b/gm/filterindiabox.cpp
index a29f08b8b6..6b662f064f 100644
--- a/gm/filterindiabox.cpp
+++ b/gm/filterindiabox.cpp
@@ -23,24 +23,23 @@ static SkSize computeSize(const SkBitmap& bm, const SkMatrix& mat) {
return SkSize::Make(bounds.width(), bounds.height());
}
-static void draw_row(SkCanvas* canvas, const SkBitmap& bm, const SkMatrix& mat, SkScalar dx) {
+static void draw_cell(SkCanvas* canvas, const SkBitmap& bm, const SkMatrix& mat, SkScalar dx,
+ SkPaint::FilterLevel lvl) {
SkPaint paint;
+ paint.setFilterLevel(lvl);
SkAutoCanvasRestore acr(canvas, true);
- canvas->drawBitmapMatrix(bm, mat, &paint);
-
- paint.setFilterLevel(SkPaint::kLow_FilterLevel);
- canvas->translate(dx, 0);
- canvas->drawBitmapMatrix(bm, mat, &paint);
-
- paint.setFilterLevel(SkPaint::kMedium_FilterLevel);
canvas->translate(dx, 0);
- canvas->drawBitmapMatrix(bm, mat, &paint);
+ canvas->concat(mat);
+ canvas->drawBitmap(bm, 0, 0, &paint);
+}
- paint.setFilterLevel(SkPaint::kHigh_FilterLevel);
- canvas->translate(dx, 0);
- canvas->drawBitmapMatrix(bm, mat, &paint);
+static void draw_row(SkCanvas* canvas, const SkBitmap& bm, const SkMatrix& mat, SkScalar dx) {
+ draw_cell(canvas, bm, mat, 0 * dx, SkPaint::kNone_FilterLevel);
+ draw_cell(canvas, bm, mat, 1 * dx, SkPaint::kLow_FilterLevel);
+ draw_cell(canvas, bm, mat, 2 * dx, SkPaint::kMedium_FilterLevel);
+ draw_cell(canvas, bm, mat, 3 * dx, SkPaint::kHigh_FilterLevel);
}
class FilterIndiaBoxGM : public skiagm::GM {
diff --git a/gm/xfermodes.cpp b/gm/xfermodes.cpp
index 721a76e695..d881ae1e6d 100644
--- a/gm/xfermodes.cpp
+++ b/gm/xfermodes.cpp
@@ -84,13 +84,17 @@ class XfermodesGM : public GM {
bool restoreNeeded = false;
m.setTranslate(x, y);
- canvas->drawBitmapMatrix(fSrcB, m, &p);
+ canvas->drawBitmap(fSrcB, x, y, &p);
p.setXfermode(mode);
switch (srcType) {
- case kSmallTransparentImage_SrcType:
+ case kSmallTransparentImage_SrcType: {
m.postScale(SK_ScalarHalf, SK_ScalarHalf, x, y);
- canvas->drawBitmapMatrix(fTransparent, m, &p);
+
+ SkAutoCanvasRestore acr(canvas, true);
+ canvas->concat(m);
+ canvas->drawBitmap(fTransparent, 0, 0, &p);
break;
+ }
case kQuarterClearInLayer_SrcType: {
SkRect bounds = SkRect::MakeXYWH(x, y, SkIntToScalar(W),
SkIntToScalar(H));
@@ -135,9 +139,12 @@ class XfermodesGM : public GM {
case kRectangleImageWithAlpha_SrcType:
p.setAlpha(0x88);
// Fall through.
- case kRectangleImage_SrcType:
- canvas->drawBitmapMatrix(fDstB, m, &p);
+ case kRectangleImage_SrcType: {
+ SkAutoCanvasRestore acr(canvas, true);
+ canvas->concat(m);
+ canvas->drawBitmap(fDstB, 0, 0, &p);
break;
+ }
default:
break;
}