無常
accb9ea266
Merge d124a1a17e into 0e43b31e50
2025-12-24 00:49:10 +00:00
Anthony Nicholls
0e43b31e50
tie: Hide tie implementations from public API
...
This speeds up header includes
2025-12-22 09:54:33 +00:00
Anthony Nicholls
97ce101d6a
Graphics: Hide rendering helpers from public API
...
This should help speed up includes of the juce_graphics header file
2025-12-22 09:54:33 +00:00
Anthony Nicholls
f22e9585d4
GUI Basics: Split module into multiple compilation units
...
This should help prevent gui_basics becoming a bottleneck during builds.
2025-12-22 09:54:33 +00:00
Anthony Nicholls
696ad7648c
ASIO: Fix compiler warnings
2025-12-22 09:53:31 +00:00
Anthony Nicholls
157e115d09
Component: Improve performance and opaque checks
2025-12-22 09:50:25 +00:00
Anthony Nicholls
21ae78c373
In-app purchases: Add a warning when JUCE_IN_APP_PURCHASES_USE_SANDBOX_ENVIRONMENT is defined
2025-12-19 12:20:39 +00:00
reuk
258203706c
Direct2D: Use WM_PAINT and vblank callbacks to drive painting
2025-12-17 18:05:46 +00:00
reuk
22ae5baa42
Direct2D: Remove SwapChainThread completely
...
D2D repaints are always driven by a vblank timer, and D2D presentation
can't happen any faster than the vblank callbacks, so I think it's safe
to remove the swapchain machinery and to rely entirely on the vblank
callbacks instead.
2025-12-17 18:05:46 +00:00
reuk
cd6176bd00
UpdateRegion: Fix bug where storage for update regions was never reallocated
2025-12-17 18:05:46 +00:00
reuk
65206568c4
HWNDComponentPeer: Remove dispatchDeferredRepaints()
2025-12-17 17:44:17 +00:00
reuk
8eea88dec3
Direct2DHwndContext: Remove unnecessary prefixes
2025-12-17 16:22:39 +00:00
reuk
f6a81fe5f2
WebBrowserComponent: On Linux, avoid asserting when no callback is passed to evaluateJavascript()
2025-12-17 15:20:48 +00:00
reuk
ea5cffcbd2
XEmbedComponent: Improve formatting
2025-12-16 12:29:59 +00:00
reuk
f48ca1b1e3
XEmbedComponent: Update embedded window size when peer scale changes
2025-12-16 12:29:59 +00:00
reuk
28aa387f8d
VST Host: Fix issue where the Component bounds computed for a hosted editor on Linux could be incorrect for non-unity scale factors
2025-12-16 12:29:59 +00:00
reuk
8e4832dcf5
WebBrowserComponent: Improve formatting
2025-12-16 12:29:59 +00:00
reuk
14ee9e46ff
WebBrowserComponent: Fix bug where Linux browser process could segfault during shutdown
...
This issue could be observed when loading the WebViewPluginDemo in the
AudioPluginHost, opening its editor, and then attempting to close the
editor window using the titlebar button. Tested on Fedora 42 with
libwebkit2gtk-4.1.
Unloading the webkit library with dlclose seems to cause the webview
process to crash, even if gtk_main() has already exited at that point.
Maybe this points to a need to manually clean up the webview somehow
before calling gtk_main_quit, but I can't see any obvious candidate
functions in the docs (gtk_widget_destroy doesn't seem to help).
The workaround presented here just opens the webkit library with
RTLD_NODELETE, which isn't ideal but might be necessary if this library
hasn't been designed with dynamic load/unload in mind.
2025-12-16 12:23:59 +00:00
reuk
3b569d5801
WebBrowserComponent: Fix hang when browser window exits unexpectedly
...
If the browser process happened to segfault, the old WIFEXITED check
would never succeed and the loop would never break.
The issue is resolved by additionally checking for other statuses that
also indicate that the child process is no longer alive.
2025-12-16 12:23:59 +00:00
reuk
983cbdc441
VST Host: Use a "wrapper" window on Linux so that the client does not have to be responsible for window position
...
Previously, on Linux, client plugin editors were embedded directly into the peer
displaying the client's AudioProcessorEditor.
Although this approach is simple and lightweight, it means that plugin
editors are able to reposition themselves over controls in the parent
window just by calling XMoveResizeWindow or similar on their own widget.
It's more desirable that the client editor should be clipped if it
attempts to draw outside the area of the AudioProcessorEditor.
2025-12-16 12:23:59 +00:00
reuk
cad3e2f054
LV2 Client: Avoid potential nullptr deref when widget is not set by client UI
2025-12-16 12:23:59 +00:00
reuk
aaa204c608
LV2 Client: Avoid advertising noUserResize as extension data
2025-12-16 12:23:59 +00:00
reuk
e57dac4a63
LV2 Host: Avoid sending resize events back to the plugin if they originated from the plugin
2025-12-16 12:23:59 +00:00
reuk
648a7bcecc
LV2 Host: Avoid checking for noUserResize in UI extension data
2025-12-16 12:23:59 +00:00
reuk
3bc7692868
LV2 Host: Fix some confusion between logical/physical coordinate spaces
2025-12-16 12:23:59 +00:00
reuk
1c2d5f69f3
LV2 Host: Avoid double-nesting XEmbed views
...
This fixes an issue where some LV2 plugin UIs failed to display
correctly. The issue seemed to be more likely to manifest on a plain
Xorg session.
2025-12-16 12:23:59 +00:00
reuk
167d9b64c3
LV2 Host: Query ComponentPeer directly for scale factor instead of using a cached value
2025-12-16 12:23:58 +00:00
reuk
0ba96f15a0
LV2: Use std::optional in more places
2025-12-16 12:23:58 +00:00
reuk
fcf1971122
Plugin Client: Change scaling mechanism on Linux/Windows plugins
2025-12-16 12:23:58 +00:00
reuk
b4c28db765
ComponentPeer: Add method for overriding native scale factor
2025-12-16 12:23:58 +00:00
reuk
6648e13fa6
X11: Ignore ConfigureNotify events containing stale information
2025-12-16 12:03:35 +00:00
reuk
89d019b5da
X11: Load XNextRequest function
2025-12-16 12:03:35 +00:00
reuk
141b2d64cc
X11: Remove isStandaloneApp check
2025-12-16 12:03:35 +00:00
reuk
254e03a435
Windows: Use ComSmartPtr to manage FileDropTarget
2025-12-16 12:03:35 +00:00
reuk
57c739c444
Windows: Remove isStandaloneApp checks
2025-12-16 12:03:35 +00:00
reuk
3f13cdb314
HWNDComponentPeer: Add setBoundsPhysical() method to set window size in physical pixels
2025-12-16 12:03:35 +00:00
reuk
0fab062726
TopLevelWindow: Simplify setBounds() call
2025-12-16 12:03:35 +00:00
reuk
82cc2ab282
Windows: Fix target version preprocessor definition
...
This now matches the definition in juce_BasicNativeHeaders.h
2025-12-16 12:03:35 +00:00
reuk
1237b34c84
Windowing: Avoid dynamically loading GetSystemMetricsForDpi, which is always present on Windows 10
2025-12-16 12:03:35 +00:00
reuk
5048d359e5
Windowing: Avoid dynamically loading EnableNonClientDpiScaling, which is always present on Windows 10
2025-12-16 12:03:35 +00:00
reuk
e2a1af48e5
Windowing: Avoid dynamically loading GetWindowDpiAwarenessContext, which is always present on Windows 10
2025-12-16 12:03:35 +00:00
reuk
f34de2438c
Windowing: Avoid dynamically loading GetAwarenessFromDpiAwarenessContext, which is always present on Windows 10
2025-12-16 12:03:35 +00:00
reuk
ad95f9d88c
Windowing: Avoid dynamically loading GetThreadDpiAwarnessContext, which is always present on Windows 10
2025-12-16 12:03:34 +00:00
reuk
016cf341bf
Windowing: Avoid dynamically loading SetThreadDpiAwarenessContext, which is always present on Windows 10
2025-12-16 12:03:34 +00:00
reuk
2591068b61
Windowing: Avoid dynamically loading GetProcessDpiAwareness, which is always present on Windows 8.1
2025-12-16 12:03:34 +00:00
reuk
f1d215f014
Windowing: Avoid dynamically loading SetProcessDpiAwareness, which is always present on Windows 8.1
2025-12-16 12:03:34 +00:00
reuk
09ae83a367
Windowing: Avoid dynamically loading SetProcessDpiAwarenessContext, which is always present on Windows 10
2025-12-16 12:03:34 +00:00
reuk
63410e78e7
Windowing: Avoid dynamically loading GetDpiForMonitor, which is always present on Windows 8.1
2025-12-16 12:03:34 +00:00
reuk
b4749b1f86
Windowing: Avoid dynamically loading SetProcessDPIAware, which is always present on Vista
2025-12-16 12:03:34 +00:00
reuk
2261575b00
Windowing: Avoid dynamically loading GetDpiForWindow, which is always present on Windows 10
2025-12-16 12:03:34 +00:00