aboutsummaryrefslogtreecommitdiffhomepage
path: root/gm/shadermaskfilter.cpp
diff options
context:
space:
mode:
authorGravatar Robert Phillips <robertphillips@google.com>2018-04-11 12:38:41 +0000
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-04-11 12:38:47 +0000
commitc64ee20e135a336ed775ccb6dec8a87efd19ec02 (patch)
tree661c8d0d3ee64ff31b45548758e3c1dfe4abc81d /gm/shadermaskfilter.cpp
parent90f09e7853f506808b7dad5c50b60376887277a4 (diff)
Revert "Fix handling of MaskFilter matrices"
This reverts commit 2097fd03ffea48bd904c48c93348b2350600870e. Reason for revert: This is breaking a lot of Windows bots (esp. on the shadermaskfilter_localmatrix) Original change's description: > Fix handling of MaskFilter matrices > > 1) extend GrFPArgs to track pre/post local matrices, add helpers for > creating pre/post wrapper args > > 2) add a SkShaderBase helper (totalLocalMatrix) to centralize the LM > sandwich logic. > > 3) update call sites to use the above > > 4) rename SkMatrixFilter::makeWithLocalMatrix -> makeWithMatrix, to > disambiguate vs. SkShader::makeWithLocalMatrix. > > BUG=skia:7744 > > Change-Id: Ib2b7b007e6924979b00649dde7c94ef4b34771f1 > Reviewed-on: https://skia-review.googlesource.com/119330 > Commit-Queue: Florin Malita <fmalita@chromium.org> > Reviewed-by: Brian Salomon <bsalomon@google.com> TBR=bsalomon@google.com,robertphillips@google.com,fmalita@chromium.org,reed@google.com Change-Id: I918dbb95bf00b3122e6699b84566ec82dbb5fc5c No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia:7744 Reviewed-on: https://skia-review.googlesource.com/120340 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
Diffstat (limited to 'gm/shadermaskfilter.cpp')
-rw-r--r--gm/shadermaskfilter.cpp90
1 files changed, 0 insertions, 90 deletions
diff --git a/gm/shadermaskfilter.cpp b/gm/shadermaskfilter.cpp
index a3f4fd87b7..c1bee02e6d 100644
--- a/gm/shadermaskfilter.cpp
+++ b/gm/shadermaskfilter.cpp
@@ -11,7 +11,6 @@
#include "SkCanvas.h"
#include "SkImage.h"
#include "SkMaskFilter.h"
-#include "SkPictureRecorder.h"
#include "SkShaderMaskFilter.h"
static void draw_masked_image(SkCanvas* canvas, const SkImage* image, SkScalar x, SkScalar y,
@@ -221,92 +220,3 @@ DEF_SIMPLE_GM(savelayer_maskfilter, canvas, 450, 675) {
}
}
-static void draw_mask(SkCanvas* canvas) {
- SkPaint p;
- p.setAntiAlias(true);
- canvas->drawOval(SkRect::Make(canvas->imageInfo().bounds()), p);
-}
-
-DEF_SIMPLE_GM(shadermaskfilter_localmatrix, canvas, 1200, 800) {
- static constexpr SkScalar kSize = 100;
-
- using ShaderMakerT = sk_sp<SkShader>(*)(SkCanvas*, const SkMatrix& lm);
- static const ShaderMakerT gShaderMakers[] = {
- [](SkCanvas* canvas, const SkMatrix& lm) -> sk_sp<SkShader> {
- auto surface = sk_tool_utils::makeSurface(canvas,
- SkImageInfo::MakeN32Premul(kSize, kSize));
- draw_mask(surface->getCanvas());
- return surface->makeImageSnapshot()->makeShader(SkShader::kClamp_TileMode,
- SkShader::kClamp_TileMode, &lm);
- },
- [](SkCanvas*, const SkMatrix& lm) -> sk_sp<SkShader> {
- SkPictureRecorder recorder;
- draw_mask(recorder.beginRecording(kSize, kSize));
- return SkShader::MakePictureShader(recorder.finishRecordingAsPicture(),
- SkShader::kClamp_TileMode,
- SkShader::kClamp_TileMode,
- &lm, nullptr);
- },
- };
-
- struct Config {
- SkMatrix fCanvasMatrix,
- fMaskMatrix,
- fShaderMatrix;
- } gConfigs[] = {
- { SkMatrix::I(), SkMatrix::MakeScale(2, 2), SkMatrix::MakeTrans(10, 10) },
- { SkMatrix::MakeScale(2, 2), SkMatrix::I(), SkMatrix::MakeTrans(10, 10) },
- { SkMatrix::MakeScale(2, 2), SkMatrix::MakeTrans(10, 10), SkMatrix::I() },
- { SkMatrix::Concat(SkMatrix::MakeScale(2, 2), SkMatrix::MakeTrans(10, 10)),
- SkMatrix::I(), SkMatrix::I() },
- { SkMatrix::I(),
- SkMatrix::Concat(SkMatrix::MakeScale(2, 2), SkMatrix::MakeTrans(10, 10)),
- SkMatrix::I() },
- { SkMatrix::I(), SkMatrix::I(),
- SkMatrix::Concat(SkMatrix::MakeScale(2, 2), SkMatrix::MakeTrans(10, 10)) },
- };
-
- using DrawerT = void(*)(SkCanvas*, const SkRect&, const SkPaint&);
- static const DrawerT gDrawers[] = {
- [](SkCanvas* canvas, const SkRect& dest, const SkPaint& mask) {
- canvas->drawRect(dest, mask);
- },
- [](SkCanvas* canvas, const SkRect& dest, const SkPaint& mask) {
- canvas->saveLayer(&dest, &mask);
- SkPaint p = mask;
- p.setMaskFilter(nullptr);
- canvas->drawPaint(p);
- canvas->restore();
- },
- };
-
- SkPaint paint, rectPaint;
- paint.setColor(0xff00ff00);
- rectPaint.setStyle(SkPaint::kStroke_Style);
- rectPaint.setColor(0xffff0000);
-
- for (const auto& sm : gShaderMakers) {
- for (const auto& drawer : gDrawers) {
- {
- SkAutoCanvasRestore acr(canvas, true);
- for (const auto& cfg : gConfigs) {
- paint.setMaskFilter(SkShaderMaskFilter::Make(sm(canvas, cfg.fShaderMatrix))
- ->makeWithMatrix(cfg.fMaskMatrix));
- auto dest = SkRect::MakeWH(kSize, kSize);
- SkMatrix::Concat(cfg.fMaskMatrix, cfg.fShaderMatrix).mapRect(&dest);
-
- {
- SkAutoCanvasRestore acr(canvas, true);
- canvas->concat(cfg.fCanvasMatrix);
- drawer(canvas, dest, paint);
- canvas->drawRect(dest, rectPaint);
- }
-
- canvas->translate(kSize * 2.5f, 0);
- }
- }
- canvas->translate(0, kSize * 2.5f);
- }
-
- }
-}