1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-10 23:44:24 +00:00
JUCE/modules/juce_graphics
reuk a4022df686
Direct2D: Fix issue where contexts would not clear properly after pushing multiple clip layers
This issue could be seen when calling setBufferedToImage on a component
with a transparent background with a size different to the component's
size.

The details are unclear to me, but it seems like both calling Clear on
the device context, and using the COPY blend mode, ignore alpha values
and instead use a constant alpha of 1.0 when there is a geometric
clipping layer active.

As a workaround for this issue, when clearing a rectangle we now pop all
active layers, fill their intersection using the COPY blend mode while
there are no layers active, and then reinstate the layers.

The new implementation is likely to be very slow, however I think this
code path is unlikely to be used frequently in practice. The main
use-case for rendering clear transparent areas is the rendering of
buffered component images, but such cases normally use axis-aligned
clipping regions, which should be able to use the faster path.
2024-07-04 13:03:56 +01:00
..
colour ColourGradient: Fix assertion in ColourGradient::remove 2024-05-08 17:53:52 +01:00
contexts LowLevelGraphicsPostScriptRenderer: Remove support 2024-06-27 18:10:22 +01:00
detail Fix compilation error with C++20 2024-06-24 15:07:16 +00:00
effects D2D: Add faster two-pass blur implementation 2024-04-29 16:08:24 +01:00
fonts Upgrade to harfbuzz 9.0.0 2024-07-04 13:05:26 +02:00
geometry CoreGraphics: Slightly shrink excluded clip regions in order to draw transformed opaque components without border artefacts 2024-05-20 12:49:55 +01:00
image_formats MinGW: Remove support 2024-06-27 18:10:21 +01:00
images D2D: Add faster two-pass blur implementation 2024-04-29 16:08:24 +01:00
native Direct2D: Fix issue where contexts would not clear properly after pushing multiple clip layers 2024-07-04 13:03:56 +01:00
placement Update licensing information 2024-04-16 11:39:35 +01:00
unicode Unicode: Ignore punctuation when resolving implicit characters 2024-05-23 12:54:13 +01:00
juce_graphics.cpp LowLevelGraphicsPostScriptRenderer: Remove support 2024-06-27 18:10:22 +01:00
juce_graphics.h LowLevelGraphicsPostScriptRenderer: Remove support 2024-06-27 18:10:22 +01:00
juce_graphics.mm Update licensing information 2024-04-16 11:39:35 +01:00
juce_graphics_Harfbuzz.cpp Suppress warnings emitted by harfbuzz 9.0.0 2024-07-04 13:05:26 +02:00