Fix padding bug in SkTileImageFilter.
When padding an image out to tile size, use the filter input, not the source primitive. NOTE: this will affect the tileimagefilter GM (new test case & size). R=robertphillips@google.com BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1853803003 Review URL: https://codereview.chromium.org/1853803003
This commit is contained in:
parent
2f538e9157
commit
f27002947d
@ -14,7 +14,7 @@
|
||||
#include "gm.h"
|
||||
|
||||
#define WIDTH 400
|
||||
#define HEIGHT 100
|
||||
#define HEIGHT 200
|
||||
#define MARGIN 12
|
||||
|
||||
namespace skiagm {
|
||||
@ -107,6 +107,20 @@ protected:
|
||||
canvas->drawRect(srcRect, red);
|
||||
canvas->drawRect(dstRect, blue);
|
||||
canvas->restore();
|
||||
|
||||
canvas->translate(0, SkIntToScalar(100));
|
||||
|
||||
srcRect = SkRect::MakeXYWH(0, 0, 50, 50);
|
||||
dstRect = SkRect::MakeXYWH(0, 0, 100, 100);
|
||||
SkImageFilter::CropRect cropRect(SkRect::MakeXYWH(5, 5, 40, 40));
|
||||
sk_sp<SkColorFilter> greenCF = SkColorFilter::MakeModeFilter(SK_ColorGREEN,
|
||||
SkXfermode::kSrc_Mode);
|
||||
SkAutoTUnref<SkImageFilter> green(SkColorFilterImageFilter::Create(greenCF.get(), nullptr,
|
||||
&cropRect));
|
||||
tile.reset(SkTileImageFilter::Create(srcRect, dstRect, green));
|
||||
paint.setColor(SK_ColorRED);
|
||||
paint.setImageFilter(tile);
|
||||
canvas->drawRect(dstRect, paint);
|
||||
}
|
||||
private:
|
||||
sk_sp<SkImage> fBitmap, fCheckerboard;
|
||||
|
@ -83,8 +83,8 @@ bool SkTileImageFilter::onFilterImageDeprecated(Proxy* proxy, const SkBitmap& sr
|
||||
return false;
|
||||
}
|
||||
SkCanvas canvas(device);
|
||||
canvas.drawBitmap(src, SkIntToScalar(srcOffset.x()),
|
||||
SkIntToScalar(srcOffset.y()));
|
||||
canvas.drawBitmap(source, SkIntToScalar(srcOffset.x()),
|
||||
SkIntToScalar(srcOffset.y()));
|
||||
subset = device->accessBitmap(false);
|
||||
}
|
||||
SkASSERT(subset.width() == srcIRect.width());
|
||||
|
Loading…
Reference in New Issue
Block a user