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

13092 commits

Author SHA1 Message Date
Tom Poole
68514d626c Graphics: Added a global GlyphArrangement cache 2022-04-04 12:36:33 +01:00
Tom Poole
f6995ea217 Fix a compiler crash in GCC < 11 2022-04-04 12:36:33 +01:00
Tom Poole
3dd812052e macOS/iOS: Add a Metal layer renderer
This restores the functionality of JUCE_COREGRAPHICS_RENDER_WITH_MULTIPLE_PAINT_CALLS.
Using this preprocessor flag may avoid Core Graphics rendering much larger regions than
necessary, but the small regions that are rendered will likely be rendered slower.
Whether using this flag improves or degrades the performance of your rendering overall
will be specific to each application.

Previously enabling JUCE_COREGRAPHICS_RENDER_WITH_MULTIPLE_PAINT_CALLS was ineffective
from versions of macOS around 10.13, but enabling it didn't have any negative impact on
performance. Now enabling JUCE_COREGRAPHICS_RENDER_WITH_MULTIPLE_PAINT_CALLS may result
in slower rendering.
2022-04-04 12:36:33 +01:00
Tom Poole
e5cbcd7628 macOS/iOS: Add the ability to weak link module frameworks 2022-04-04 12:36:33 +01:00
Tom Poole
04e7014d0f macOS/iOS: Sync repaint request rate to screen FPS and remove repaint throttling in plug-ins 2022-04-04 12:36:32 +01:00
Tom Poole
89a67ec556 macOS/iOS: Enable asynchronous Core Graphics rendering by default
The helper function setComponentAsyncLayerBackedViewDisabled has been replaced
by a windowRequiresSynchronousCoreGraphicsRendering ComponentPeer style flag.
2022-04-04 12:36:32 +01:00
Tom Poole
dea3fe60e4 Update copyright banners 2022-04-04 12:36:32 +01:00
reuk
f77b286b8c
VST3 Client: Work around broken editor resizing in Blue Cat's PatchWork 2022-04-01 16:41:48 +01:00
reuk
cad155bf1c
VST3 Client: Make window sizing slightly more robust in Live
The following was observed for a VST3 plugin hosted in Live 11.1 with
auto-scaling disabled:

- It never calls setContentScaleFactor on the plugin's UI, so the
  wrapper has to check the current display on a timer and update the
  current scale factor when necessary.

- It calls canResize on the plugin view after opening it, but doesn't
  seem to respect the result of this call. According to the VST3
  documentation, a host is supposed to only call checkSizeConstraint
  during a live resize operation (which should only happen if the plugin
  reports it can resize), but Live calls this function every time the
  user drags the editor. It also passes the result of this function to
  onSize, whether or not checkSizeConstraints reported success.

- When dragging an editor between displays, Live will continue to call
  checkSizeConstraint and onSize with the editor’s old size in physical
  pixels. In some cases, JUCE's "scale factor check" timer callback
  fires, resizes the view to the correct size, and then Live
  asynchronously calls onSize again with the editor's old size in
  physical pixels, resulting in the editor being set to the wrong
  logical size.

This patch ensures that checkSizeConstraint always returns the current
size of a nonResizable editor. This means that the logical size of the
editor should not change when the result of checkSizeContraint is used
to resize the window.
2022-04-01 16:41:48 +01:00
reuk
624a898e00
VST3 Host: Avoid disabling midi buses while plugin is active 2022-04-01 16:41:47 +01:00
reuk
ae646dde16
StandaloneFilterWindow: Account for native frame size in constrainer 2022-04-01 16:41:47 +01:00
reuk
ee06a2364b
CMake: Add support for AU hosting in PIPs 2022-04-01 16:41:47 +01:00
reuk
5491e7aae2
ALSA: Fix thread sanitizer warnings 2022-04-01 16:41:47 +01:00
reuk
93ba4d98cf
Fix clang warnings 2022-04-01 16:41:47 +01:00
reuk
c7a17934e3
Formatting 2022-04-01 16:41:47 +01:00
Tom Poole
1f29416fd0 AudioDeviceManager: Improve device sample rate handling 2022-04-01 14:31:46 +01:00
Tom Poole
69e287bc2e ADSR: Restore the previous behaviour and clarify the documentation
This partially reverts d9c25ec17d.
2022-04-01 12:00:13 +01:00
reuk
9c5f4659bb CMake: Handle tabs properly in module metadata blocks 2022-03-31 12:49:17 +01:00
reuk
902a576b73 NullCheckedInvocation: Disable Waddress warning
When calling NullCheckedInvocation::invoke with a capture-less lambda,
GCC 9.3 determines that the expression
    std::declval<TheLambda>() != nullptr
is well-formed, and uses the version of invoke containing a nullptr
check. However, the compiler is also able to determine that this
expression can never be false, and emits a warning.
2022-03-31 12:46:55 +01:00
Tom Poole
d9c25ec17d ADSR: Fix a bug in noteOn after setting new parameters 2022-03-31 10:25:18 +01:00
Tom Poole
679fdc5421 Projucer: Improve the App Group ID setting help text 2022-03-29 08:51:48 +01:00
Oli
b918fd3159 AudioProcessorGraph: Fix MIDI channel bug and graph execution modification
MIDI only plugins are no longer provided valid audio buffers
Graph nodes are only executed when they have active connections
2022-03-28 20:47:30 +01:00
Oli
15bdae16b2 DirectoryContentsList: Fix a data race
Fix improper use of non-atomic pointer validity to report state of background search thread state
2022-03-28 20:47:30 +01:00
Tom Poole
ed4f638ff7 Line: Add explicit methods for lengthening the start and end points 2022-03-24 14:01:34 +00:00
Tom Poole
d5d9a02c8f ChildProcessCoordinator: Fix an issue with a missing ping thread
Following commit 093dbc7df1 pings of a
child process connection need to initialised explicitly. This commit
adds a missing initialisation.
2022-03-24 14:01:34 +00:00
Tom Poole
27abc89396 AudioProcessLoadMeasurer: Fix a data race 2022-03-24 14:01:34 +00:00
Tom Poole
e9417c645b UnitTestsDemo: Add a missing module flag 2022-03-24 13:13:10 +00:00
attila
5343f70d02 AU Host: Avoid using wrong BundleResourceMap when opening plugin from file
Previously it was possible to have a dangling resource map. In that case
opening an AU from a file that did not have a resource map would lead to
using the previously unclosed map and attempting to load the previous
plugin again.
2022-03-23 18:40:47 +00:00
attila
55b00fc846 Component: Fix mouseEnter and mouseExit positions when blocked by modal 2022-03-23 18:40:47 +00:00
reuk
8fad301c13
File: Update documentation 2022-03-23 16:51:40 +00:00
reuk
fe3d42025b
VST3: Add channel mapping tests 2022-03-23 16:51:40 +00:00
reuk
bb2b36a253
VST3 Client: Properly map between VST3 and JUCE layouts 2022-03-23 16:51:40 +00:00
reuk
bfa4f93a43
VST3 Host: Properly map between VST3 and JUCE layouts 2022-03-23 16:51:40 +00:00
reuk
d69706e08a
AudioProcessorGraph: Avoid race on AudioProcessor::suspended 2022-03-23 16:51:40 +00:00
reuk
5b3aa7fc2d
AU Client: Ensure processBlock receives AudioBuffer of correct size
fc378aaf9a introduced a regression where
plugins with no audio channels (such as MIDI FX plugins) would receive
an audio buffer with a length-in-samples of '0', rather than the actual
block length.
2022-03-23 16:51:40 +00:00
reuk
88b5f0dc95
VST: Remove unused function 2022-03-23 16:51:40 +00:00
reuk
a8c160691c
VST3: Tidy up channel layout conversion tables 2022-03-23 16:51:40 +00:00
reuk
8c718e7ac7
VST3: Map proximity channels correctly 2022-03-23 16:51:40 +00:00
reuk
18300abde9
VST3 Client: Add host API checks to setBusArrangements and activateBus 2022-03-23 16:51:39 +00:00
reuk
364b7f7316
SurroundPlugin: Provide nicer metering and enable multi-bus support
This change also allows the plugin to receive discrete layouts in hosts
that support them, while also maintaining support for
AudioChannelLayoutTags in Logic.
2022-03-23 16:51:39 +00:00
reuk
d232eb90d6
AudioPluginHost: Allow multibus configurations to be set on internal plugins 2022-03-23 16:51:39 +00:00
reuk
1e820fd362
Resave projects 2022-03-23 16:51:39 +00:00
reuk
b710a248bd
UnitTests: Rename UMPTests file for consistency 2022-03-23 16:51:39 +00:00
Tom Poole
75a5508bdf Fix some copyright banners 2022-03-23 16:04:04 +00:00
reuk
e6b6bc2cfc
AudioProcessorValueTreeState: Add default values for Parameter constructor arguments
These were mistakenly removed in afe5199848
2022-03-23 11:26:57 +00:00
reuk
970483b1cd
SSE SIMDNativeOps: Reimplement sum for SSE3 to work around an AppleClang bug
With clang 13.0.0, and Apple clang version 13.1.6 (clang-1316.0.21.2),
the following code fails to compile with `-std=c++20 -O3 -msse3`:

    #include <immintrin.h>

    auto test (__m128 a)
    {
        return _mm_hadd_ps (_mm_hadd_ps (a, a), a);
    }
2022-03-23 11:21:50 +00:00
reuk
c6f703aa57
SIMDRegister Test: Tidy up template functions 2022-03-23 11:21:50 +00:00
reuk
ebac835673
Fix some deprecation warnings 2022-03-22 17:27:54 +00:00
Tom Poole
87a4ab4a78 Disable the effect of setPaintingIsUnclipped on components with children 2022-03-17 22:06:04 +00:00
Tom Poole
165d8b0ecd macOS: Make the behaviour of ComponentPeer::grabFocus match the other platforms
This partially reverts f43784dc: "macOS:  Propagate focus loss message when resigning key window status and only grab focus if window can become the key window"
2022-03-17 21:52:33 +00:00