SF: Fix invalid reduction of transparent region from a layer.
Reduce transparent region from a layer only if the transparent region has valid intersection with the layer. Otherwise, reducing a transparent region lying completely outside of the layer leads to invalid sourcecrop values for the layer. Change-Id: Iee9ba53a8072c21c9ba8a6d58cb14ca30f8600ba CRs-Fixed: 620973
This commit is contained in:
parent
bea57f312d
commit
5934c292ab
@ -326,7 +326,9 @@ Rect Layer::reduce(const Rect& win, const Region& exclude) const{
|
|||||||
if (CC_LIKELY(exclude.isEmpty())) {
|
if (CC_LIKELY(exclude.isEmpty())) {
|
||||||
return win;
|
return win;
|
||||||
}
|
}
|
||||||
if (exclude.isRect()) {
|
Rect tmp;
|
||||||
|
win.intersect(exclude.getBounds(), &tmp);
|
||||||
|
if (exclude.isRect() && !tmp.isEmpty()) {
|
||||||
return win.reduce(exclude.getBounds());
|
return win.reduce(exclude.getBounds());
|
||||||
}
|
}
|
||||||
return Region(win).subtract(exclude).getBounds();
|
return Region(win).subtract(exclude).getBounds();
|
||||||
|
Loading…
Reference in New Issue
Block a user