Fix for cropped matrix convolution for BottomLeft render targets.
R=bsalomon@google.com Review URL: https://codereview.chromium.org/31083002 git-svn-id: http://skia.googlecode.com/svn/trunk@11872 2bbb7eff-a529-9590-31e7-b0007b416f81
This commit is contained in:
parent
b5e391025e
commit
2a4223c783
@ -93,7 +93,7 @@ protected:
|
||||
target.fY++;
|
||||
}
|
||||
target.fY = 1;
|
||||
SkImageFilter::CropRect rect(SkRect::MakeXYWH(10, 10, 60, 60));
|
||||
SkImageFilter::CropRect rect(SkRect::MakeXYWH(10, 5, 60, 60));
|
||||
this->draw(canvas, 310, 10, target, MCIF::kClamp_TileMode, true, &rect);
|
||||
this->draw(canvas, 310, 110, target, MCIF::kClampToBlack_TileMode, true, &rect);
|
||||
this->draw(canvas, 310, 210, target, MCIF::kRepeat_TileMode, true, &rect);
|
||||
|
@ -515,11 +515,15 @@ void GrGLMatrixConvolutionEffect::setData(const GrGLUniformManager& uman,
|
||||
uman.set1f(fGainUni, conv.gain());
|
||||
uman.set1f(fBiasUni, conv.bias());
|
||||
const SkIRect& bounds = conv.bounds();
|
||||
uman.set4f(fBoundsUni,
|
||||
(float) bounds.left() / texture.width(),
|
||||
(float) bounds.top() / texture.height(),
|
||||
(float) bounds.right() / texture.width(),
|
||||
(float) bounds.bottom() / texture.height());
|
||||
float left = (float) bounds.left() / texture.width();
|
||||
float top = (float) bounds.top() / texture.height();
|
||||
float right = (float) bounds.right() / texture.width();
|
||||
float bottom = (float) bounds.bottom() / texture.height();
|
||||
if (texture.origin() == kBottomLeft_GrSurfaceOrigin) {
|
||||
uman.set4f(fBoundsUni, left, 1.0f - bottom, right, 1.0f - top);
|
||||
} else {
|
||||
uman.set4f(fBoundsUni, left, top, right, bottom);
|
||||
}
|
||||
}
|
||||
|
||||
GrMatrixConvolutionEffect::GrMatrixConvolutionEffect(GrTexture* texture,
|
||||
|
Loading…
Reference in New Issue
Block a user