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

15653 commits

Author SHA1 Message Date
Ricky Curtice
8dad534405
Merge ba03eb3fd1 into a35c8a97d2 2026-01-05 08:04:12 -08:00
Tom Poole
a35c8a97d2 ReaperEmbeddedView: Fix a compiler warning 2025-12-31 16:06:26 +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
2ea448ffcc AudioPluginHost: Enable ASIO support 2025-12-22 09:53:31 +00:00
Anthony Nicholls
4be2fccf2c DemoRunner: Enable ASIO support 2025-12-22 09:53:31 +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
Anthony Nicholls
bf43db5ff7 In-app purchases: Update instructions 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
attila
d252e8ced5
Add Icon Composer icons to the Projucer, DemoRunner and AudioPluginHost 2025-12-17 13:09:18 +00:00
attila
07120c2f4e
MacOS: Projucer: CMake: Add option to use an Icon Composer icon 2025-12-17 13:09:18 +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