1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-10 23:44:24 +00:00

GraphicsContext: Avoid attempting to paint empty rectangles in all renderers

This commit is contained in:
reuk 2024-05-09 16:12:44 +01:00
parent 06137fb7f5
commit 5b2f9d4019
No known key found for this signature in database
GPG key ID: FCB43929F012EE5C
3 changed files with 15 additions and 0 deletions

View file

@ -524,6 +524,9 @@ void CoreGraphicsContext::fillRect (const Rectangle<float>& r)
void CoreGraphicsContext::fillCGRect (const CGRect& cgRect, bool replaceExistingContents) void CoreGraphicsContext::fillCGRect (const CGRect& cgRect, bool replaceExistingContents)
{ {
if (CGRectIsEmpty (cgRect))
return;
if (replaceExistingContents) if (replaceExistingContents)
{ {
CGContextSetBlendMode (context.get(), kCGBlendModeCopy); CGContextSetBlendMode (context.get(), kCGBlendModeCopy);

View file

@ -1167,6 +1167,9 @@ void Direct2DGraphicsContext::setInterpolationQuality (Graphics::ResamplingQuali
void Direct2DGraphicsContext::fillRect (const Rectangle<int>& r, bool replaceExistingContents) void Direct2DGraphicsContext::fillRect (const Rectangle<int>& r, bool replaceExistingContents)
{ {
if (r.isEmpty())
return;
if (replaceExistingContents) if (replaceExistingContents)
clipToRectangle (r); clipToRectangle (r);
@ -1187,6 +1190,9 @@ void Direct2DGraphicsContext::fillRect (const Rectangle<int>& r, bool replaceExi
void Direct2DGraphicsContext::fillRect (const Rectangle<float>& r) void Direct2DGraphicsContext::fillRect (const Rectangle<float>& r)
{ {
if (r.isEmpty())
return;
auto fill = [] (Rectangle<float> rect, ComSmartPtr<ID2D1DeviceContext1> deviceContext, ComSmartPtr<ID2D1Brush> brush) auto fill = [] (Rectangle<float> rect, ComSmartPtr<ID2D1DeviceContext1> deviceContext, ComSmartPtr<ID2D1Brush> brush)
{ {
if (brush != nullptr) if (brush != nullptr)

View file

@ -2180,6 +2180,9 @@ public:
void fillRect (Rectangle<int> r, bool replaceContents) void fillRect (Rectangle<int> r, bool replaceContents)
{ {
if (r.isEmpty())
return;
if (clip != nullptr) if (clip != nullptr)
{ {
if (transform.isOnlyTranslated) if (transform.isOnlyTranslated)
@ -2201,6 +2204,9 @@ public:
void fillRect (Rectangle<float> r) void fillRect (Rectangle<float> r)
{ {
if (r.isEmpty())
return;
if (clip != nullptr) if (clip != nullptr)
{ {
if (transform.isOnlyTranslated) if (transform.isOnlyTranslated)