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

14923 commits

Author SHA1 Message Date
reuk
6f20de5434
iOS Audio: Reset sample rate to default after querying available rates 2024-10-21 22:36:31 +01:00
reuk
aca71ca788
Projucer: Use WRAPPER_NAME instead of FULL_PRODUCT_NAME in Xcode post-build scripts
WRAPPER_NAME is documented in the build settings reference, whereas
FULL_PRODUCT_NAME is not.
2024-10-21 22:36:31 +01:00
reuk
c6110c09b5 Timer: Warn if the TimerThread outlives the ScopedJuceIniitaliser_GUI 2024-10-21 21:54:30 +01:00
reuk
ee641f7baf VST2 Client: Avoid data race on appDelegate pointer
Previously, it was possible for the Timer destructor to run after the
last ScopeJuceInitialiser_GUI destructor, which meant that timer
callbacks could continue to be fired (via the appDelegate pointer) after
the static appDelegate instance had been destroyed.

With this change in place, we now ensure the Timer is destroyed before
the ScopedJuceInitialiser_GUI.
2024-10-21 21:54:30 +01:00
attila
82080f9372 ShapedText: Apply the horizontal scaling to the extra kerning
This fixes an undesired behaviour where squashing the text using
GlyphArrangement::addFittedText would only squash the visible glyphs but
not the additional kerning space between them.
2024-10-21 15:34:42 +02:00
attila
8693507ead ShapedText: Apply extra kerning only before clusters
This avoids inserting tracking between glyphs in a single cluster e.g. a
base glyph and diacritic marks.
2024-10-21 15:34:42 +02:00
attila
503788fd0c ShapedText: Fix falsely marking glyphs with missing extent information as whitespace 2024-10-21 15:34:42 +02:00
attila
bd14d47211 SimpleShapedText: Restore and tidy up earlier line breaking logic
This commit isn't fixing any known bugs, but restores the soft break
iteration logic to its state prior to
5e4016b4fb, which accidentally changed it.
2024-10-21 15:34:42 +02:00
attila
b545b79cb3 GlyphArrangement: Make drawFittedText squashing behaviour more similar to JUCE 7
This commit fixes a regression added during the ShapedText based rewrite
of the class. The minimumHorizontalScale parameter was mistakenly
interpreted as an absolute scale, whereas its meaning in the old
implementation was a relative scalar applied to the Font's horizontal
scale.
2024-10-21 15:34:42 +02:00
Oliver James
60c1deb4e4 DSP: Simplify processor definitions and add Windows Arm support 2024-10-21 14:11:11 +01:00
Oliver James
c68e82f44d Core: Handle Windows Arm platform definition 2024-10-21 14:11:11 +01:00
reuk
1f71b5f4fb
AudioProcessor: Update documentation to make implementation requirements clearer for MIDI-related member functions 2024-10-21 12:28:56 +01:00
reuk
4a87eb3c40
AAX Client: Query processor instead of relying on JucePlugin_IsMidiEffect 2024-10-21 12:28:56 +01:00
reuk
499abb7637
VST Client: Query processor instead of relying on JucePlugin_IsMidiEffect 2024-10-21 12:28:56 +01:00
reuk
64823f2d37
LV2 Client: Query processor instead of relying on JucePlugin_IsMidiEffect 2024-10-21 12:28:55 +01:00
reuk
436100c94b
AU Client: Replace use of JucePlugin_IsMidiEffect with AUMainType
An audio unit with main type aumi should always have a MIDI input and
output, regardless of how IsMidiEffect is set.
2024-10-21 12:28:55 +01:00
reuk
103ac55b92
AU Client: Refactor scopeToDirection 2024-10-21 12:28:55 +01:00
reuk
1f56562652
StandaloneFilterWindow: Allow plugin to run when no display is present
This is useful on headless Linux systems. When no display is attached,
window creation is bypassed but a StandalonePluginHolder is still
created, allowing audio to be processed.
2024-10-21 12:28:55 +01:00
reuk
420922253f
StandaloneFilterWindow: Avoid null pointer dereference when displays array is empty 2024-10-21 12:28:55 +01:00
reuk
88e544a085
Javascript: Refactor interrupt handler 2024-10-21 12:28:55 +01:00
reuk
3cca812d38
Javascript: Fix bug where timeout previously applied in call to execute() would be applied in subsequent calls to callFunction() 2024-10-21 12:28:55 +01:00
reuk
8ccea668e4
PopupMenu: Adjust mouse interactions so that menu is only dismissed on mouseUp if the mouse has moved
Previously, MouseSourceState::checkButtonState would trigger a menu item
if the MouseSourceState had observed the mouse button transition from
pressed to released while over an item, after more than 250ms had
elapsed since creating the menu window. In situations where the main
thread was very busy, this timeout could sometimes be reached inside the
same mouse click/release gesture. If the menu was created inside a
mouse-down, then simply tapping the mouse could sometimes trigger an
item from the menu as soon as the menu window appeared.

To help avoid accidentally triggering menu items, the menu window now
prevents any item from being triggered by the mouse until either the
mouse has been released once, or the mouse has moved. Put another way,
if the mouse is initially pressed when the menu is shown, it cannot
trigger a menu item unless the mouse is moved before it is released.
2024-10-20 22:59:40 +01:00
reuk
db4a2c0b9f
PopupMenu: Make dismissOnMouseUp private 2024-10-20 22:59:40 +01:00
reuk
570b86ff0c
PopupMenu: Refactor mouseOver detection
The mouseWasOver member will now be updated on each mouse event, rather
than on a timer.
2024-10-20 22:59:40 +01:00
reuk
44a84e3a4d
MessageBox: Avoid potential divide-by-zero for boxes with no buttons 2024-10-20 22:59:39 +01:00
reuk
b292ba215a
Component: Ensure global mouse listeners are notified on mouse up
Previously, listeners would sometimes fail to receive mouse up events
blocked by modal components
2024-10-20 22:59:39 +01:00
reuk
6c18a352f1
VST3 Host: Retain parameter timestamps for MIDI CC messages 2024-10-20 22:59:39 +01:00
reuk
67396435e5
DynamicObject: Add virtual functions that are called to indicate a property change 2024-10-20 22:59:39 +01:00
reuk
14f663bc0e
CoreGraphics: Fix issue where text using simulated italic could be drawn at the wrong point
This was evident in the FontsDemo when using the CoreGraphics renderer,
selecting a font without an italic face, and enabling the italic style.
The glyph anchor positions were incorrectly transformed by the text
matrix, causing the left margin of the text to become tilted.

We now correct for the slant and scale specified in the text matrix when
computing glyph anchor positions.
2024-10-20 22:59:38 +01:00
reuk
07c863ac23 Javascript: Fix bug where properties of native objects could not be enumerated in JS 2024-10-16 17:28:14 +01:00
reuk
7f52509c78
Direct2D: Simplify SwapChain buffer creation 2024-10-16 10:36:53 +01:00
reuk
80ac9a78a0
Singleton: Add new macros to simplify singleton creation
The INLINE macros allow singletons to be declared and defined in one
line, without requiring a separate JUCE_IMPLEMENT_SINGLETON statement.
2024-10-16 10:36:52 +01:00
Tom Poole
5179f4e720 JUCE version 8.0.3 2024-10-15 22:20:16 +01:00
reuk
b770839e03 AAX Client: Update embedded SDK to 2.8.0 2024-10-15 22:19:51 +01:00
Tom Poole
17a3d0efe4 Resave all projects 2024-10-15 22:19:12 +01:00
Tom Poole
14c8d06fb0 Bump version number to 8.0.3 2024-10-15 22:16:12 +01:00
Tom Poole
0f3bad8152 Font: Avoid a crash on systems with no fonts installed 2024-10-15 14:27:23 +01:00
reuk
5453192a0c
JavaScript: Reinstate default max execution time of 15 seconds
It looks like the old default accidentally went missing in
 db3c2c6a52.
2024-10-15 11:45:12 +01:00
reuk
f5cc7902b1 Direct2D: Avoid using dirty rects when painting full frame
This fixes an issue where Direct2D will emit an error when using dirty
rects on the first full frame after resizing.

The issue isn't present on all hardware/drivers, but was observed on a
Windows 11 computer with a 890M iGPU.
2024-10-14 11:13:26 +01:00
attila
83dc660a30 Fonts: MacOS: Return styles in the order reported by the system
This is more likely to place the regular/default style first in the list
of styles. This change partially reverts a behavioural change in
68d0ea9dfb.
2024-10-10 17:53:10 +02:00
reuk
97cd4fc162
Direct2D: Reinstate multithreading support for D2D factory
Partially reverts a change made in
362a1cc070.

The factory needs to be multithreading-enabled in order to support e.g.
drawing to the screen on the main thread and drawing to an Image on a
background thread, even when no resources other than the graphics device
are shared between the two threads.
2024-10-10 16:11:24 +01:00
reuk
1e902bcdee
VST3: Avoid potential memory allocations during buffer remapping 2024-10-10 14:07:04 +01:00
reuk
ca8b5f7483 VST3 Host: Use correct path to .so on Linux
This fixes an issue where VST3 plugins failed to scan and load on Linux.
2024-10-10 13:18:11 +01:00
reuk
362a1cc070
Direct2D: Convert unnecessary multi-threaded factory to single-threaded 2024-10-10 11:47:18 +01:00
reuk
fa0ab06d41 Direct2D: Fix performance issue caused by the entire window painting unnecessarily 2024-10-09 18:13:46 +01:00
reuk
d22d287c6f Direct2D: Avoid presenting incomplete buffers after startFrame fails 2024-10-09 13:15:45 +01:00
reuk
b52f5cff21 WebBrowserComponent: Fix build issue on older linux platforms
Previously, building the DemoRunner on Ubuntu 18.04 failed due to a
missing type declaration.
2024-10-08 19:13:04 +01:00
reuk
77f3073d92
String: Fix unit test failure for random seed 0xaccaaad0444426fa 2024-10-08 17:32:42 +01:00
reuk
c57041e5bc
Direct2D: Simplify threading of swapchain presentation
Previously, IDXGISwapChain::Present was called on a background thread,
which made it difficult to avoid race conditions. e.g. during a
live-resize of a window, we would occasionally draw old incomplete
frames instead of new frames at the correct size.

The new approach moves the Present call to the main thread via
AsyncUpdater. We attempt to present whenever the swap event wakes, and
whenever a frame is drawn. Only a single Present call may be made after
the swap event wakes. Subsequent Present calls will be ignored until the
next time the swap event wakes.
2024-10-08 16:10:07 +01:00
reuk
c7f7a7c1bb
Direct2D: Remove setResizing and getResizing members from renderer
We instead query from the renderer whether the current render size has
changed since the last frame, and repaint the entire window if so.
2024-10-07 11:50:26 +01:00