diff options
author | Florin Malita <fmalita@google.com> | 2014-12-10 12:02:16 -0500 |
---|---|---|
committer | Florin Malita <fmalita@google.com> | 2014-12-10 12:02:16 -0500 |
commit | c54d8db4d169ea5f2af2a9a2349df007bd428475 (patch) | |
tree | 60c05374d2748ff3e11fcab4c92bb92c15990c93 /gm | |
parent | 3d6405b52d35b2a2715a2e4f561c351b028fab1a (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.cpp | 135 | ||||
-rw-r--r-- | gm/downsamplebitmap.cpp | 3 | ||||
-rw-r--r-- | gm/filterbitmap.cpp | 24 | ||||
-rw-r--r-- | gm/filterindiabox.cpp | 23 | ||||
-rw-r--r-- | gm/xfermodes.cpp | 17 |
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; } |