reuk
72e345cdd7
Direct2DImage: Add missing data change notification when creating writable BitmapData
...
The OpenGL renderer listens for imageDataChanged() to invalidated cached
textures.
Before this change, the SimpleFFTDemo would display a static (outdated)
image on Windows when using the OpenGLRenderer.
2025-05-27 18:01:53 +01:00
reuk
415aed4bea
Direct2DImage: Sync CPU storage when creating a BitmapData view over a subsection of the image
...
When syncing from CPU->GPU storage, we currently copy the entire image
contents. The contents of the CPU backup completely replace the old GPU
image. Therefore, if any pixels need to retain their existing values, we
need to read those pixels before overwriting them. This in turn implies
that, when a BitmapData refers to a subsection of the image, we should
always flush GPU->CPU storage first, so that the subsequent CPU->GPU
sync doesn't clobber pixels outside of the BitmapData region with
outdated values.
It's clear that copying the entire image back and forth could be
suboptimal when writing to image subsections, but to optimise this
process we'd have to keep track of dirty image regions or similar, which
may in turn pessimise more common cases.
2025-05-27 18:01:53 +01:00
reuk
4012677fdf
Direct2DImage: Mark CPU storage as outdated after modifying GPU storage by copying
2025-05-27 18:01:53 +01:00
attila
7fc75c35f9
Android: Suppress availability macro warning
2025-05-19 13:30:27 +01:00
Oli
6972c4f0e3
Direct2D: Fix ETW tracing build errors
...
This makes Direct2DMetrics and current frameId accessible to implementation subclasses.
It also replaces JUCE_WRITE_TRACE_LOG with JUCE_WRITE_TRACE_LOG_VA as intended in original implementation.
Co-authored-by: Matt Gonzalez <matt@echoaudio.com>
2025-04-30 10:50:52 +01:00
reuk
243d3756fc
Direct2D: Hide implementation of RectangleListSpriteBatch::fillRectangles
2025-04-24 13:58:24 +01:00
reuk
49948d5dd4
Direct2D: Remove unused declarations
2025-04-24 13:58:24 +01:00
reuk
98d4ddef87
Direct2D: Move MemoryFontFileLoader to DirectX.cpp
2025-04-24 13:58:24 +01:00
reuk
234e75b2be
Direct2D: Move MemoryFontFileFileStream to DirectX.cpp
2025-04-24 13:58:24 +01:00
reuk
96683e49a1
Direct2D: Move FontFileEnumerator to DirectX.cpp
2025-04-24 13:58:24 +01:00
reuk
8d29edec92
Direct2D: Move CompositionTree to Direct2DHwndContext.cpp
2025-04-24 13:58:24 +01:00
reuk
1f6c1737eb
Direct2D: Remove declaration of makeGradientStopCollection()
2025-04-24 13:58:24 +01:00
reuk
8d33428dcf
Direct2D: Move WindowsScopedEvent to Direct2DHwndContext.cpp
2025-04-24 13:58:24 +01:00
reuk
f56c7faf40
Direct2D: Move SwapChain into Direct2DHwndContext.cpp
2025-04-24 13:58:24 +01:00
reuk
43c9f28d59
Direct2D: Move ScopedGeometryWithSink to Direct2DGraphicsContextImpl.cpp
2025-04-24 13:58:24 +01:00
reuk
137d9820b1
Direct2D: Move D2DHelpers to Direct2DGraphicsContext.cpp
2025-04-24 13:58:24 +01:00
reuk
2aed72d0d7
Direct2D: Move paintPrimitive implementation into Direct2DGraphicsContext
2025-04-24 13:58:24 +01:00
reuk
b061d5f5a4
Direct2D: Hide D2D SavedState in .cpp file
2025-04-24 13:58:24 +01:00
reuk
0071f4741c
Direct2D: Make protected members of Pimpl private/public as appropriate
2025-04-24 13:58:24 +01:00
reuk
170b463400
Direct2D: Remove unused hwnd data member from D2DGraphicsContext::Pimpl
2025-04-24 13:58:24 +01:00
reuk
93d227b6af
Direct2D: Split declaration and definition of Direct2DGraphicsContext::Pimpl
2025-04-24 13:58:24 +01:00
reuk
352f77083d
DirectX: Remove unused ScopedMultithread
2025-04-24 13:58:24 +01:00
reuk
87abc7919b
DirectX: Split out function definitions into a separate cpp file
2025-04-24 13:58:24 +01:00
Oli
ca3abbb96d
Direct2D: Round virtual texture tile position
...
This fixes the issue reported here: https://forum.juce.com/t/regression-in-drawimage/65084/5
2025-04-24 13:58:24 +01:00
Oli
5d6cd1f2d7
Direct2DGraphicsContext: Fix rendering for rectangles smaller than 1x1
...
This should also fix https://forum.juce.com/t/bug-d2d-renderer-does-not-draw-purely-horizontal-vertical-paths/65686/3
Co-authored-by: Matt Gonzalez <matt@echoaudio.com>
2025-04-24 13:58:24 +01:00
Oli
1dce4ae0fe
Direct2DGraphicsContext: Use path bounds to check for emptiness
...
Co-authored-by: Matt Gonzalez <matt@echoaudio.com>
2025-04-24 13:58:24 +01:00
Oliver James
16326d13d3
Direct2D: Use the 'focused' window when acquiring metrics
...
Co-authored-by: Matt Gonzalez <matt@echoaudio.com>
2025-04-24 13:58:23 +01:00
Oli
9374f2c9f7
Graphics: Use preferred temporary image type for transparency layers
...
Co-authored-by: Matt Gonzalez <matt@echoaudio.com>
2025-04-24 13:58:23 +01:00
Oli
250abe9cf4
LowLevelGraphicsContext: Add preferred image type for temporary images
...
Co-authored-by: Matt Gonzalez <matt@echoaudio.com>
2025-04-24 13:58:23 +01:00
Oli
bf940ae42a
Direct2D: Do image cloning on GPU when possible
...
Co-authored-by: Matt Gonzalez <matt@echoaudio.com>
2025-04-24 13:58:23 +01:00
Oli
ae784a941e
Direct2D: Implement moveValidatedImageSection
...
Co-authored-by: Matt Gonzalez <matt@echoaudio.com>
2025-04-24 13:58:23 +01:00
reuk
c167c6dfde
Direct2D: Move ImagePixelDataNativeExtensions into separate header
2025-04-24 13:58:23 +01:00
Oli
5e5258591f
Direct2D: Move Direct2DGraphicsContext::Impl into separate header
2025-04-24 13:58:23 +01:00
reuk
6deb508e96
Direct2D: Move Direct2DFactories to juce_DirectX_windows.h
2025-04-24 13:58:23 +01:00
reuk
18b508343d
Direct2D: Move Direct2DResources to juce_DirectX_windows.h
2025-04-24 13:58:23 +01:00
reuk
b5b7dd5696
Direct2D: Move Direct2DHelpers into juce_DirectX_windows.h
2025-04-24 13:58:23 +01:00
Oli
3b43b7ca13
Direct2D: Reduce DirectX resource thrashing in Direct2D Swapchain
2025-04-22 12:53:46 +01:00
attila
c786e6160c
Direct2D: Fix fillAlphaChannelWithCurrentBrush when the source position is non-zero
2025-04-17 10:27:24 +02:00
reuk
eca83213eb
Direct2D: Fix issue where vertical/horizontal lines were ignored by strokePath
2025-04-02 10:57:09 +01:00
attila
5aab60f4e5
Direct2D: Fix text drawing using gradients
2025-03-28 12:19:11 +01:00
attila
273c7936d3
Direct2D: Fix text drawing using gradients when the screen scaling is 1
2025-03-17 15:32:59 +01:00
attila
1b595311d0
Move ShapedText to the detail namespace and expose it in the headers
...
This makes it accessible for the new TextEditor implementation in
juce_gui_basics.
2025-03-13 12:16:16 +01:00
reuk
92c7d73d2d
Direct2D: Fix image artefacts at the edge of alpha-clipped regions
...
This addresses the same issue that
95d416ab77 was intended to fix:
Drawing a drop shadow on a high-res display on Windows could sometimes
produce thin lines around the edge of the shadow. Using the 'clamp'
rather than the 'wrap' clipping mode seems to help.
2025-02-11 18:11:12 +00:00
reuk
09b10428ec
CoreGraphics: Remove CoreImage implementations for desaturation and transparency
2025-02-06 18:22:33 +00:00
reuk
c46bcb677e
CoreGraphics: Remove CoreImage single-channel blur implementation
...
The CoreImage blur implementation is often significantly slower than
the old software blur in common scenarios such as rendering shadows.
2025-02-06 18:22:33 +00:00
reuk
56ea531298
CoreGraphics: Fix bug where subsection images were rendered incorrectly
2025-02-03 13:56:31 +00:00
reuk
f12d29899c
Direct2D: Remove SetDpi call in startFrame
...
Previously, plugins and standalone apps could produce slightly different
visual results, particularly anti-aliasing, when displaying on a display
with native scaling applied. The discrepancy was caused by SetDpi being
called with a larger-than-default value (e.g. 192 DPI on a 200% scaled
display) in a standalone app, whereas SetDpi would always be called with
the default value of 96 in a plugin.
Keeping the default value seems to produce better results, so standalone
apps will now retain the default DPI.
2025-01-29 11:00:44 +00:00
reuk
c3e8b6bff3
CoreGraphics: Use Image NativeExtensions to avoid dynamic casts in graphics context
2025-01-23 12:21:33 +00:00
reuk
d3ca5961e7
Direct2D: Use Image NativeExtensions to avoid dynamic casts in graphics context
2025-01-23 12:21:33 +00:00
reuk
55e5e2082c
Image: Add new backup-extensions interface to support images with no main-memory backup
2025-01-23 12:21:33 +00:00