1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-14 00:14:18 +00:00
Commit graph

8094 commits

Author SHA1 Message Date
reuk
3768349a05
Font: Make Font and TypefaceCache threadsafe
Previously, it wasn't safe to access Font instances from multiple
threads because there was a chance that they might reference the same
shared internal state. In this case, calling getTypeface() or getAscent from
two threads simultaneously would cause a race on the typeface and ascent
data members, even though the Font instances appeared to be disjoint.

With this change in place, it is now safe to use Font instances from
multiple threads simultaneously.

It is still an error to modify the same Font instance from multiple
threads without synchronization!

    // Fine:
    Font a;
    Font b = a;

    auto futureA = std::async (std::launch::async, [&a] { /* do something with a */ });
    auto futureB = std::async (std::launch::async, [&b] { /* do something with b */ });

    // Bad idea:
    Font f;

    auto futureA = std::async (std::launch::async, [&f] { /* do something with f */ });
    auto futureB = std::async (std::launch::async, [&f] { /* do something with f */ });
2021-09-23 10:28:47 +01:00
ed
300f573163 PluginHostType: Add Ableton Live 11 detection 2021-09-23 10:21:02 +01:00
ed
55ffe91db8 TreeView: Don't add MouseListener for nested custom components
This restores the behaviour of TreeViews with custom item components prior to ec990202
2021-09-23 10:20:36 +01:00
ed
d589f65b36 AUv3: Fall back to view size if AUViewControllerBase preferredContentSize property has a zero size when opening plug-in editor 2021-09-22 13:52:56 +01:00
ed
ada1b2d693 AU: Reset plug-in host callbacks in prepareToPlay() in case they were removed when uninitialising or resetting the audio unit 2021-09-22 13:52:36 +01:00
ed
4649bc1b13 Windows: Add WebView2Preferences struct to modify aspects of WebView2 behaviour 2021-09-22 13:50:53 +01:00
reuk
056700572c
OpenGLPixelFormat: Tidy up equality function 2021-09-22 11:04:47 +01:00
reuk
abf493122f
OpenGL: Attempt to enable multisampling on Android 2021-09-22 11:04:47 +01:00
reuk
75258a4ba6
OpenGL: Add multisampling support on Linux 2021-09-22 11:04:46 +01:00
reuk
f0d11f961b
OpenGLContext: Avoid reading from component on background thread 2021-09-22 10:23:05 +01:00
reuk
ceae64dd40
AudioDeviceSelectorComponent: Always show the actual samplerate of the device
Previously, the samplerate combo would display as a blank box in the
case that the device's actual samplerate wasn't one of the "available"
samplerates reported by the device.
2021-09-22 10:23:05 +01:00
reuk
fd87195941
iOS Audio: Allow specifying a fixed set of preferred sample rates
By defining JUCE_IOS_AUDIO_EXPLICIT_SAMPLERATES, the iOS audio device
will always use the requested samplerates instead of querying the
current audio device for the samplerates it supports. This is useful
because certain hardware (such as the Focusrite iTrack Dock) takes a
long time to set new samplerates, which can end up freezing the main
thread for significant lengths of time.

This approach is inspired by the AUM app for iOS, which appears to
provide a fixed list of "allowed" samplerates, rather than querying the
device for its allowed samplerates.
2021-09-22 10:23:04 +01:00
reuk
3f5862cf17
WASAPI: Tidy up internal buffering mechanism 2021-09-22 10:23:04 +01:00
reuk
32322a51e8
TableHeaderComponent: Avoid repainting in setColumnWidth if requested size is outside limits 2021-09-22 10:23:04 +01:00
reuk
c49e18cad4
Projucer: Add option to automatically set up oneMKL in VS exporters 2021-09-22 10:23:04 +01:00
reuk
f989182f32
Linux windowing: Display utf-8 native window titles correctly 2021-09-21 11:01:31 +01:00
Tom Poole
bc75010116 Bump version number to 6.1.2 2021-09-20 12:15:47 +01:00
Tom Poole
f1fecfdc88 Add some missing Doxygen tags 2021-09-20 11:36:56 +01:00
ed
a46c484afb Fix some conversion warnings flagged up by Android Studio 2021-09-15 16:00:22 +01:00
ed
ae8662ce6d macOS Accessibility: Silence some unguarded-selector warnings 2021-09-15 14:04:23 +01:00
ed
30b37da39b Accessibility: Fix parent handler traversal when hit test handler is ignored in AccessibilityHandler::getChildAt() 2021-09-15 14:04:23 +01:00
ed
d6fd33b38d Accessibility: Disable accessibility for PopupMenu windows on the desktop when their parent window or target component have accessibility disabled 2021-09-15 14:04:23 +01:00
ed
b65dc65bc2 Android Accessibility: Don't send accessibility events when inside populateNodeInfo() callback
Calling AccessibilityHandler::getChildren() or getParent() may cause an AccessibilityHandler object to be created and an InternalAccessibilityEvent::elementCreated notification to be sent. Calling AndroidAccessibilityEvent.setSource may then cause a recursive populateNodeInfo() call.
2021-09-15 14:03:46 +01:00
ed
d8214732ed Android Accessibility: Send appropriate content change types for TYPE_WINDOW_CONTENT_CHANGED accessibility event 2021-09-15 14:03:07 +01:00
ed
74a83440e2 Android Accessibility: Check for valid host pointer when calling into C++ peer code from Java accessibility callbacks 2021-09-15 14:02:15 +01:00
reuk
0a288fc71e
AU Host: Fix bug where modifying parameters from a custom editor would sometimes update incorrect parameters in the host
This issue could be seen when modifying the "OSC FmModSrc" parameter of
U-He Diva AU from the custom editor in the AudioPluginHost. The
parameter display in the generic parameter editor did not update
properly because the wrong parameter was marked as changed.
2021-09-14 19:36:57 +01:00
ed
9db2647971 Docs: Fix a typo 2021-09-14 11:43:24 +01:00
ed
24910cc4b4 Fix GCC Wshadow warnings 2021-09-14 08:42:56 +01:00
ed
1d55452b78 VST3 Host: Ensure that plug-ins without IPlugViewContentScaleSupport support are resized correctly when the native scale factor changes 2021-09-13 11:47:34 +01:00
ed
f17425c880 VST3 Host: Be more forgiving of internal parameter IDs in beginEdit/performEdit/endEdit methods 2021-09-13 11:47:34 +01:00
ed
3f699f5b14 VST3 Host: Only call onSize() in resizeView() if the size has changed
This fixes a recursive resizeView()->onSize()->resizeView() loop in Arturia Pigments as it immediately calls resizeView() with the same size.
2021-09-13 11:47:24 +01:00
ed
598748c825 VST3 Host: Call updateMidiMapping() after enabling plug-in MIDI busses in setupIO()
This fixes a crash in Roland Cloud plug-ins due to calling methods on the IMidiMapping interface before it was initialised.
2021-09-13 11:47:10 +01:00
attila
5c933d4c4e macOS OpenGL: Use display refresh rate when rate limiting swapBuffers() 2021-09-10 17:47:00 +02:00
Tom Poole
5109e30c6f Bump version number to 6.1.1 2021-09-09 12:51:15 +01:00
ed
f0002845d5 OpenGL: Correctly reset repaintEvent 2021-09-08 11:22:18 +01:00
ed
7bc696cd28 Windows: Use Component::ScaleFactorListener in ActiveXComponent, OpenGL and video native code and remove some unnecessary JUCE_WIN_PER_MONITOR_DPI_AWARE checks 2021-09-08 11:21:41 +01:00
reuk
65396f986d
OpenGL: Use correct reference to glResolveMultisampleFramebufferAPPLE 2021-09-07 20:09:34 +01:00
ed
8370542eb2 Accessibility: Only use AccessibilityRole::toggleButton role and add AccessibilityActionType::toggle for ToggleButtons 2021-09-07 17:33:02 +01:00
reuk
4f5c559ce2
VST3 Host: Ensure that program parameter is updated in response to program change requests 2021-09-07 11:30:19 +01:00
reuk
b2a51eb253
VST3 Client: Avoid segfaults when updating program and bypass parameters
Previously, updating the program or bypass parameter could cause an
out-of-bounds access into the parameter value cache. This is because
AudioProcessorParameter::getParameterIndex() was used to index into the
cache, but the parameter index could be negative for parameters that
had not been added to the AudioProcessor.

We now use the appropriate index in the cache for parameters that
have not been added to the AudioProcessor.
2021-09-07 11:30:19 +01:00
ed
90eb878d16 Accessibility: Make createAccessibilityHandler() private in Component subclasses 2021-09-07 11:23:17 +01:00
ed
dd08be6215 Android Accessibility: Guard app context calls in a few places to prevent potential nullptr dereferences 2021-09-07 11:23:17 +01:00
ed
3739fe4829 Accessibility: Added ScopedDragNotification for sending slider drag notifications 2021-09-07 11:23:17 +01:00
ed
8d6ba3b54e Accessibility: Use AccessibilityRole::ignored for UI elements that should not be accessible to screen readers but have accessible children 2021-09-07 11:23:17 +01:00
ed
baa1bbafdf Windows: Fall back to old-style modal dialog when showing native message box modally since TaskDialog does not support fully modal dialogs 2021-09-02 12:33:59 +01:00
ed
b760620e05 TextLayout: Ensure that line origin is set correctly when line starts with whitespace or newline glyphs 2021-09-02 08:35:14 +01:00
ed
c26ff2da6b DirectWrite: Don't skip newline glyph runs when performing text layout 2021-09-02 08:35:14 +01:00
ed
06ca1156e1 macOS Accessibility: Always set our NSWindow as accessible so its title bar is navigable 2021-09-02 08:35:14 +01:00
ed
59333870f5 Accessibility: Disable accessibility of child components when calling Component::setAccessible (false); 2021-09-02 08:35:14 +01:00
ed
8bb08f558e Accessibility: Fix off-by-one row index bug when using a ListBox with an accessible header component 2021-09-02 08:35:14 +01:00