1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-16 00:34:19 +00:00
JUCE/modules/juce_graphics/native
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
..
juce_CoreGraphicsContext_mac.h CoreGraphics: Slightly shrink excluded clip regions in order to draw transformed opaque components without border artefacts 2024-05-20 12:49:55 +01:00
juce_CoreGraphicsContext_mac.mm GraphicsContext: Avoid attempting to paint empty rectangles in all renderers 2024-05-20 12:49:56 +01:00
juce_CoreGraphicsHelpers_mac.h Update licensing information 2024-04-16 11:39:35 +01:00
juce_Direct2DGraphicsContext_windows.cpp Direct2D: Fix issue where contexts would not clear properly after pushing multiple clip layers 2024-07-04 13:03:56 +01:00
juce_Direct2DGraphicsContext_windows.h D2D: Update Direct2DGraphicsContext::getPhysicalPixelScaleFactor to include context transform for consistency with other renderer backends 2024-04-29 16:08:23 +01:00
juce_Direct2DHelpers_windows.cpp Direct2D: Fix regression that caused closed paths to remain open 2024-06-27 18:10:22 +01:00
juce_Direct2DHwndContext_windows.cpp Direct2D: Tidy up implementation of createBitmap and remove lineStride parameter 2024-07-04 13:03:34 +01:00
juce_Direct2DHwndContext_windows.h Direct2D: Fix flickery resizing when using an internal resizer 2024-05-31 11:43:30 +01:00
juce_Direct2DImage_windows.cpp Direct2D: Tidy up implementation of createBitmap and remove lineStride parameter 2024-07-04 13:03:34 +01:00
juce_Direct2DImage_windows.h D2D: Add faster two-pass blur implementation 2024-04-29 16:08:24 +01:00
juce_Direct2DImageContext_windows.cpp D2D: Avoid calling setPhysicalPixelScaleFactor 2024-04-29 16:08:23 +01:00
juce_Direct2DImageContext_windows.h Direct2D: Add initial support 2024-04-18 14:16:02 +01:00
juce_Direct2DMetrics_windows.cpp Direct2D: Add initial support 2024-04-18 14:16:02 +01:00
juce_Direct2DMetrics_windows.h Direct2D: Add initial support 2024-04-18 14:16:02 +01:00
juce_Direct2DResources_windows.cpp Direct2D: Tidy up implementation of createBitmap and remove lineStride parameter 2024-07-04 13:03:34 +01:00
juce_DirectWriteTypeface_windows.cpp DirectWrite: Rework custom font collection loader 2024-05-31 11:43:29 +01:00
juce_DirectX_windows.h Direct2D: Fix data race when creating Direct2DPixelData instances on a background thread 2024-06-26 14:33:25 +01:00
juce_EventTracing.h Direct2D: Add initial support 2024-04-18 14:16:02 +01:00
juce_Fonts_android.cpp Remove TextLayout::createNativeLayout() 2024-05-30 12:21:35 +01:00
juce_Fonts_freetype.cpp Fonts: Replace heavyweight leak detector in FTFaceWrapper 2024-06-20 17:52:22 +01:00
juce_Fonts_linux.cpp Remove TextLayout::createNativeLayout() 2024-05-30 12:21:35 +01:00
juce_Fonts_mac.mm Remove TextLayout::createNativeLayout() 2024-05-30 12:21:35 +01:00
juce_GraphicsContext_android.cpp Typeface: Switch to using harfbuzz for computing simple advances on all platforms 2024-04-17 14:41:01 +01:00
juce_IconHelpers_android.cpp Update licensing information 2024-04-16 11:39:35 +01:00
juce_IconHelpers_linux.cpp Update licensing information 2024-04-16 11:39:35 +01:00
juce_IconHelpers_mac.cpp Update licensing information 2024-04-16 11:39:35 +01:00
juce_IconHelpers_windows.cpp Update licensing information 2024-04-16 11:39:35 +01:00
juce_RenderingHelpers.h RenderingHelpers: Allow software renderer to replace content of filled rects 2024-06-27 18:10:22 +01:00