diff options
-rw-r--r-- | gm/bigtileimagefilter.cpp | 76 | ||||
-rw-r--r-- | gm/tileimagefilter.cpp | 58 | ||||
-rw-r--r-- | include/effects/SkTileImageFilter.h | 9 | ||||
-rw-r--r-- | src/effects/SkTileImageFilter.cpp | 13 | ||||
-rw-r--r-- | src/effects/SkXfermodeImageFilter.cpp | 13 |
5 files changed, 33 insertions, 136 deletions
diff --git a/gm/bigtileimagefilter.cpp b/gm/bigtileimagefilter.cpp deleted file mode 100644 index 97de0d2042..0000000000 --- a/gm/bigtileimagefilter.cpp +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Copyright 2015 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#include "SkBitmapSource.h" -#include "SkTileImageFilter.h" -#include "gm.h" - -namespace skiagm { - -class BigTileImageFilterGM : public GM { -public: - BigTileImageFilterGM() { - this->setBGColor(0xFF000000); - } - -protected: - - SkString onShortName() override { - return SkString("bigtileimagefilter"); - } - - SkISize onISize() override{ - return SkISize::Make(kWidth, kHeight); - } - - void onOnceBeforeDraw() override { - fBitmap.allocN32Pixels(kBitmapSize, kBitmapSize); - - SkCanvas canvas(fBitmap); - canvas.clear(0xFF000000); - - SkPaint paint; - paint.setColor(SK_ColorRED); - paint.setStrokeWidth(3); - paint.setStyle(SkPaint::kStroke_Style); - - canvas.drawCircle(SkScalarHalf(kBitmapSize), SkScalarHalf(kBitmapSize), - SkScalarHalf(kBitmapSize), paint); - } - - void onDraw(SkCanvas* canvas) override { - canvas->clear(SK_ColorBLACK); - - SkPaint p; - - SkAutoTUnref<SkBitmapSource> bms(SkBitmapSource::Create(fBitmap)); - SkAutoTUnref<SkTileImageFilter> tif(SkTileImageFilter::Create( - SkRect::MakeWH(SkIntToScalar(kBitmapSize), SkIntToScalar(kBitmapSize)), - SkRect::MakeWH(SkIntToScalar(kWidth), SkIntToScalar(kHeight)), - bms)); - p.setImageFilter(tif); - - SkRect bound = SkRect::MakeWH(SkIntToScalar(kWidth), SkIntToScalar(kHeight)); - canvas->saveLayer(&bound, &p); - canvas->restore(); - } - -private: - static const int kWidth = 512; - static const int kHeight = 512; - static const int kBitmapSize = 64; - - SkBitmap fBitmap; - - typedef GM INHERITED; -}; - -////////////////////////////////////////////////////////////////////////////// - -DEF_GM( return SkNEW(BigTileImageFilterGM); ) - -} diff --git a/gm/tileimagefilter.cpp b/gm/tileimagefilter.cpp index 82393087b0..2c4f6b2b2c 100644 --- a/gm/tileimagefilter.cpp +++ b/gm/tileimagefilter.cpp @@ -16,48 +16,46 @@ #define HEIGHT 100 #define MARGIN 12 -static SkBitmap make_bitmap() { - SkBitmap bitmap; - bitmap.allocN32Pixels(50, 50); - SkCanvas canvas(bitmap); - canvas.clear(0xFF000000); - SkPaint paint; - paint.setAntiAlias(true); - sk_tool_utils::set_portable_typeface(&paint); - paint.setColor(0xD000D000); - paint.setTextSize(SkIntToScalar(50)); - const char* str = "e"; - canvas.drawText(str, strlen(str), SkIntToScalar(10), SkIntToScalar(45), paint); - return bitmap; -} - - namespace skiagm { class TileImageFilterGM : public GM { public: - TileImageFilterGM() { + TileImageFilterGM() : fInitialized(false) { this->setBGColor(0xFF000000); } protected: - SkString onShortName() override { + virtual SkString onShortName() { return SkString("tileimagefilter"); } - SkISize onISize() override{ + void make_bitmap() { + fBitmap.allocN32Pixels(50, 50); + SkCanvas canvas(fBitmap); + canvas.clear(0xFF000000); + SkPaint paint; + paint.setAntiAlias(true); + sk_tool_utils::set_portable_typeface(&paint); + paint.setColor(0xD000D000); + paint.setTextSize(SkIntToScalar(50)); + const char* str = "e"; + canvas.drawText(str, strlen(str), SkIntToScalar(10), SkIntToScalar(45), paint); + } + + virtual SkISize onISize() { return SkISize::Make(WIDTH, HEIGHT); } - void onOnceBeforeDraw() override { - fBitmap = make_bitmap(); + virtual void onDraw(SkCanvas* canvas) { + if (!fInitialized) { + make_bitmap(); - fCheckerboard.allocN32Pixels(80, 80); - SkCanvas checkerboardCanvas(fCheckerboard); - sk_tool_utils::draw_checkerboard(&checkerboardCanvas, 0xFFA0A0A0, 0xFF404040, 8); - } + fCheckerboard.allocN32Pixels(80, 80); + SkCanvas checkerboardCanvas(fCheckerboard); + sk_tool_utils::draw_checkerboard(&checkerboardCanvas, 0xFFA0A0A0, 0xFF404040, 8); - void onDraw(SkCanvas* canvas) override { + fInitialized = true; + } canvas->clear(SK_ColorBLACK); int x = 0, y = 0; @@ -111,14 +109,14 @@ protected: canvas->restore(); } private: - SkBitmap fBitmap; - SkBitmap fCheckerboard; - typedef GM INHERITED; + SkBitmap fBitmap, fCheckerboard; + bool fInitialized; }; ////////////////////////////////////////////////////////////////////////////// -DEF_GM( return SkNEW(TileImageFilterGM); ) +static GM* MyFactory(void*) { return new TileImageFilterGM; } +static GMRegistry reg(MyFactory); } diff --git a/include/effects/SkTileImageFilter.h b/include/effects/SkTileImageFilter.h index 4dccf852be..a010205121 100644 --- a/include/effects/SkTileImageFilter.h +++ b/include/effects/SkTileImageFilter.h @@ -22,11 +22,10 @@ public: static SkTileImageFilter* Create(const SkRect& srcRect, const SkRect& dstRect, SkImageFilter* input); - bool onFilterImage(Proxy* proxy, const SkBitmap& src, const Context& ctx, - SkBitmap* dst, SkIPoint* offset) const override; - bool onFilterBounds(const SkIRect& src, const SkMatrix&, - SkIRect* dst) const override; - void computeFastBounds(const SkRect& src, SkRect* dst) const override; + virtual bool onFilterImage(Proxy* proxy, const SkBitmap& src, const Context& ctx, + SkBitmap* dst, SkIPoint* offset) const override; + virtual bool onFilterBounds(const SkIRect& src, const SkMatrix&, + SkIRect* dst) const override; SK_TO_STRING_OVERRIDE() SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkTileImageFilter) diff --git a/src/effects/SkTileImageFilter.cpp b/src/effects/SkTileImageFilter.cpp index 6acf9fd5ac..c5cf51871d 100644 --- a/src/effects/SkTileImageFilter.cpp +++ b/src/effects/SkTileImageFilter.cpp @@ -82,10 +82,6 @@ bool SkTileImageFilter::onFilterImage(Proxy* proxy, const SkBitmap& src, return true; } -void SkTileImageFilter::computeFastBounds(const SkRect& src, SkRect* dst) const { - *dst = fDstRect; -} - bool SkTileImageFilter::onFilterBounds(const SkIRect& src, const SkMatrix& ctm, SkIRect* dst) const { SkRect srcRect; @@ -114,15 +110,6 @@ void SkTileImageFilter::flatten(SkWriteBuffer& buffer) const { #ifndef SK_IGNORE_TO_STRING void SkTileImageFilter::toString(SkString* str) const { str->appendf("SkTileImageFilter: ("); - str->appendf("src: %.2f %.2f %.2f %.2f", - fSrcRect.fLeft, fSrcRect.fTop, fSrcRect.fRight, fSrcRect.fBottom); - str->appendf(" dst: %.2f %.2f %.2f %.2f", - fDstRect.fLeft, fDstRect.fTop, fDstRect.fRight, fDstRect.fBottom); - if (this->getInput(0)) { - str->appendf("input: ("); - this->getInput(0)->toString(str); - str->appendf(")"); - } str->append(")"); } #endif diff --git a/src/effects/SkXfermodeImageFilter.cpp b/src/effects/SkXfermodeImageFilter.cpp index 599fd42b12..f98247a2f4 100644 --- a/src/effects/SkXfermodeImageFilter.cpp +++ b/src/effects/SkXfermodeImageFilter.cpp @@ -105,18 +105,7 @@ void SkXfermodeImageFilter::toString(SkString* str) const { if (fMode) { fMode->toString(str); } - str->append(")"); - if (this->getInput(0)) { - str->appendf("foreground: ("); - this->getInput(0)->toString(str); - str->appendf(")"); - } - if (this->getInput(1)) { - str->appendf("background: ("); - this->getInput(1)->toString(str); - str->appendf(")"); - } - str->append(")"); + str->append("))"); } #endif |