diff options
author | herb <herb@google.com> | 2016-03-23 09:00:33 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-03-23 09:00:33 -0700 |
commit | 6eff52afb458bf6702a715d88611fd571544ef73 (patch) | |
tree | a2ffdedd2b0b1fe888dbc3faff6b1f894803f5c2 /gm | |
parent | 0b8321e19b565f3a13af85b55f046c0a74396a7d (diff) |
WIP: experimental bilerp pipeline.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1775963002
Review URL: https://codereview.chromium.org/1775963002
Diffstat (limited to 'gm')
-rw-r--r-- | gm/SkLinearBitmapPipelineGM.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/gm/SkLinearBitmapPipelineGM.cpp b/gm/SkLinearBitmapPipelineGM.cpp index 51fd2cfd46..f5e01ca737 100644 --- a/gm/SkLinearBitmapPipelineGM.cpp +++ b/gm/SkLinearBitmapPipelineGM.cpp @@ -60,12 +60,16 @@ static void draw_rect_orig(SkCanvas* canvas, const SkRect& r, SkColor c, const S sk_sp<SkImage> image(SkImage::MakeRasterCopy(SkPixmap(info, pmsrc.addr32(), pmsrc.rowBytes()))); SkPaint paint; int32_t storage[300]; - paint.setShader(image->makeShader(SkShader::kClamp_TileMode, SkShader::kClamp_TileMode)); + + sk_sp<SkShader> shader = image->makeShader(SkShader::kRepeat_TileMode, + SkShader::kRepeat_TileMode); + if (useBilerp) { paint.setFilterQuality(SkFilterQuality::kLow_SkFilterQuality); } else { paint.setFilterQuality(SkFilterQuality::kNone_SkFilterQuality); } + paint.setShader(std::move(shader)); const SkShader::ContextRec rec(paint, *mat, nullptr, SkBlitter::PreferredShaderDest(pmsrc.info())); SkASSERT(paint.getShader()->contextSize(rec) <= sizeof(storage)); @@ -79,7 +83,6 @@ static void draw_rect_orig(SkCanvas* canvas, const SkRect& r, SkColor c, const S canvas->drawBitmap(bmdst, r.left(), r.top(), nullptr); ctx->~Context(); - } static void draw_rect_fp(SkCanvas* canvas, const SkRect& r, SkColor c, const SkMatrix* mat, bool useBilerp) { @@ -117,7 +120,7 @@ static void draw_rect_fp(SkCanvas* canvas, const SkRect& r, SkColor c, const SkM SkLinearBitmapPipeline pipeline{ inv, filterQuality, - SkShader::kClamp_TileMode, SkShader::kClamp_TileMode, pmsrc}; + SkShader::kRepeat_TileMode, SkShader::kRepeat_TileMode, 1.0f, pmsrc}; for (int y = 0; y < ir.height(); y++) { pipeline.shadeSpan4f(0, y, dstBits, ir.width()); @@ -161,9 +164,9 @@ DEF_SIMPLE_GM(linear_pipeline, canvas, 580, 2200) { SkMatrix mt2; mt2.setTranslate(-18, -18); SkMatrix ms; - ms.setScale(2.7f, 2.7f); + ms.setScale(2.7f, 2.7f, -1.5f, 0); SkMatrix ms2; - ms2.setScale(-0.2f, 0.2f); + ms2.setScale(-0.4f, 0.4f); SkMatrix mr; mr.setRotate(10); |