DrawState: disable drawing when clipping to an invalid rect
An invalid rect would mean an empty area to clip to. Its inverse would be an infinite area with no holes. Fixes #18395. Change-Id: I5c739149e539ab63e9aaab6e8716aa73e3ee9d2f Reviewed-on: https://review.haiku-os.org/c/haiku/+/6406 Reviewed-by: waddlesplash <waddlesplash@gmail.com> Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org> Reviewed-by: John Scipione <jscipione@gmail.com>
This commit is contained in:
parent
43a8874973
commit
7858871ed4
@ -474,8 +474,15 @@ DrawState::GetCombinedClippingRegion(BRegion* region) const
|
|||||||
bool
|
bool
|
||||||
DrawState::ClipToRect(BRect rect, bool inverse)
|
DrawState::ClipToRect(BRect rect, bool inverse)
|
||||||
{
|
{
|
||||||
if (!rect.IsValid())
|
if (!rect.IsValid()) {
|
||||||
|
if (!inverse) {
|
||||||
|
if (!fClippingRegion.IsSet())
|
||||||
|
fClippingRegion.SetTo(new(nothrow) BRegion());
|
||||||
|
else
|
||||||
|
fClippingRegion->MakeEmpty();
|
||||||
|
}
|
||||||
return false;
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
if (!fCombinedTransform.IsIdentity()) {
|
if (!fCombinedTransform.IsIdentity()) {
|
||||||
if (fCombinedTransform.IsDilation()) {
|
if (fCombinedTransform.IsDilation()) {
|
||||||
|
Loading…
Reference in New Issue
Block a user