Ensure that insetting for blur texture domain doesn't invert domain rect.
Bug: chromium:949422 Change-Id: I9046ee89f5cfb56fc25c50bd3b9bd617f07a3a73 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/208514 Reviewed-by: Michael Ludwig <michaelludwig@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
This commit is contained in:
parent
393981d1db
commit
30182b482b
@ -321,6 +321,13 @@ static sk_sp<GrTextureProxy> decimate(GrRecordingContext* context,
|
|||||||
SkRect domain = SkRect::Make(*contentRect);
|
SkRect domain = SkRect::Make(*contentRect);
|
||||||
domain.inset((i < scaleFactorX) ? SK_ScalarHalf + SK_ScalarNearlyZero : 0.0f,
|
domain.inset((i < scaleFactorX) ? SK_ScalarHalf + SK_ScalarNearlyZero : 0.0f,
|
||||||
(i < scaleFactorY) ? SK_ScalarHalf + SK_ScalarNearlyZero : 0.0f);
|
(i < scaleFactorY) ? SK_ScalarHalf + SK_ScalarNearlyZero : 0.0f);
|
||||||
|
// Ensure that the insetting doesn't invert the domain rectangle.
|
||||||
|
if (domain.fRight < domain.fLeft) {
|
||||||
|
domain.fLeft = domain.fRight = SkScalarAve(domain.fLeft, domain.fRight);
|
||||||
|
}
|
||||||
|
if (domain.fBottom < domain.fTop) {
|
||||||
|
domain.fTop = domain.fBottom = SkScalarAve(domain.fTop, domain.fBottom);
|
||||||
|
}
|
||||||
auto fp = GrTextureDomainEffect::Make(std::move(src),
|
auto fp = GrTextureDomainEffect::Make(std::move(src),
|
||||||
SkMatrix::I(),
|
SkMatrix::I(),
|
||||||
domain,
|
domain,
|
||||||
|
Loading…
Reference in New Issue
Block a user