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

14691 commits

Author SHA1 Message Date
reuk
ebc91a7e22
VST3 Client: Add support for fetching IRunLoop from host context 2024-07-29 16:11:59 +01:00
reuk
695a51832b
VST3 Client: Fix issue where active run loops could be removed incorrectly
The same run loop may be registered multiple times, e.g. if the host
passes the same run loop pointer to multiple instances of the plugin.
When a particular run loop client goes out of scope, it should only
remove its own reference to the run loop, because other clients may
still be active and still using that run loop.
2024-07-29 16:11:59 +01:00
reuk
6cc8827174
VST3 Client: Remove unnecessary class/struct keywords 2024-07-29 16:11:58 +01:00
reuk
6d5f8976ad
VST3 Client: Tidy up unnecessary namespaces 2024-07-29 16:11:58 +01:00
reuk
b319fabac5
VST3 Host: Remove unnecessary namespaces 2024-07-29 16:11:58 +01:00
reuk
b99e66c159
Harfbuzz: Silence clang overflow warning 2024-07-29 16:11:55 +01:00
reuk
ef31cbb620
DynamicObject: Make virtual functions non-virtual 2024-07-29 16:09:53 +01:00
Tom Poole
46c2a95905 JUCE version 8.0.1 2024-07-29 12:47:03 +01:00
reuk
12ef0a0200 HarfBuzz: Enable atexit to silence some CRT debug memory leak warnings
Before this change, after running a JUCE app on Windows under a
debugger, and quitting it normally (e.g. pressing the close title
button), the output log would display some memory leak diagnostics. This
is because HarfBuzz expects to clean up statics using atexit, but atexit
was not enabled. This change enables atexit on supported platforms,
including Windows.
2024-07-29 12:46:38 +01:00
Tom Poole
8f7f61652e Resave all projects 2024-07-29 12:46:05 +01:00
Tom Poole
fc0fd3042f Bump version number to 8.0.1 2024-07-29 12:43:19 +01:00
attila
04d9d36b15 TextLayout: Fix ignored AttributedText::getLineSpacing() parameter 2024-07-22 13:16:06 +02:00
attila
5de96da34d Graphics: Suppress warnings emitted by harfbuzz 2024-07-18 19:15:18 +02:00
Oliver James
57d33150d3 Unicode: Fix incorrect character ordering in Latin text
This addresses issues that could occur when re-ordering text that
contained brackets or numerical separators.
2024-07-18 19:15:17 +02:00
attila
ae23783f63 Windows: Fix rare crash when creating and destroying WebBrowserComponent instances 2024-07-15 14:37:13 +02:00
reuk
b35688d9a4
SimpleShapedText: Avoid wrapping when WordWrap::none is requested 2024-07-11 18:00:07 +01:00
reuk
b3fdcdc928
AUv3 Client: Allow auval to pass when plugin allows arbitrary matched input/output layouts 2024-07-11 16:56:20 +01:00
reuk
6fd7a928f9
AUv3 Client: Fix issue where creating a bus with no channels could fail
Previously, if the AudioProcessor had disabled buses, the AUv3 wrapper
would attempt to create zero-channel buses to represent the JUCE buses,
which failed.

With this change in place, disabled buses will be created with their
default layout, and then explicitly disabled.
2024-07-11 16:56:20 +01:00
reuk
c2b573293f
AUv3 Client: Use NSUniquePtr helper 2024-07-11 16:51:39 +01:00
reuk
17fe23c95f
SamplerPluginDemo: Add defensive checks in constructor to guard against missing sample resource 2024-07-11 16:51:38 +01:00
attila
7ead20d575 WebBrowserComponent: Windows: Avoid flash to default JUCE background colour
The default background colour of the WebBrowserComponent is white on all
platforms. Before the first page finishes loading this is the colour
that should fill the WebBrowserComponent's area.

Prior to this change however, on Windows a sudden flash to the default
JUCE background colour would occur, before the default white background
could take effect.

At the time of this commit there is a known issue with the
icorewebview2controller2, where a white flash is inevitable, unless the
WEBVIEW2_DEFAULT_BACKGROUND_COLOR environment variable is set. Using
a white background behind the WebView avoids this issue.
2024-07-11 13:36:07 +02:00
reuk
8642cfe6b3
Direct2D: Remove rectangular clip assertion
This assertion was intended to emulate a performance warning that could
be emitted by the D2D debug layer, but it often gets in the way during
development. To check for this performance issue, users can change
D2D1_DEBUG_LEVEL_NONE to D2D1_DEBUG_LEVEL_INFORMATION in
juce_DirectX_windows.h
2024-07-09 12:47:30 +01:00
reuk
4c1a93e8d8 FreeTypeTpeface: Avoid recreating FTTypefaceList at shutdown
Calling getInstance may recreate the list singleton if it has already
been destroyed. This should only happen if a Typeface instance is being
destroyed after the app/plugin has been shutdown, e.g. if the typeface
has static storage duration.
2024-07-08 13:16:57 +01:00
reuk
1023f62338 XmlElement: Avoid potential undefined-init-order issues with juce_xmltextContentAttributeName
This fixes potential crashes when this static object is accessed from
the constructors of other objects with static storage duration.

A concrete example of this could be seen when running the following on
Linux:

    static inline const Typeface::Ptr face =
        Typeface::createSystemTypefaceFor (...);

Here, 'face' is a static data member of some class. Creating a system
typeface on Linux will parse an XML document of system typefaces,
eventually accessing juce_xmltextContentAttributeName.
2024-07-08 13:09:30 +01:00
attila
9844687735 Javascript: Convert void and undefined vars to correct QuickJS values 2024-07-05 17:18:16 +02:00
attila
ced6347505 Javascript: Fix dangling pointer 2024-07-05 17:17:56 +02:00
reuk
606a7bc552 Javascript: Update implementation to preserve methods when converting between JUCE and QJS types 2024-07-04 19:36:57 +01:00
attila
d2f3e920f7 WebSliderParameterAttachment: Always report the NormalisableRange defined number of steps
Even for AudioParameterFloat.
2024-07-04 16:23:51 +02:00
attila
9082d3274a Fix inactive sliderDragStarted/sliderDragEnded events in the WebView frontend library
This fixes the behaviour of WebBrowserComponent based plugins, including
the WebViewPluginDemo, when working with automations.
2024-07-04 13:59:30 +00:00
attila
f1954bbe4d Add missing documentation for Javascript helper classes 2024-07-04 13:59:30 +00:00
attila
9f06b4f6a6 Update WebBrowserComponent documentation 2024-07-04 13:59:30 +00:00
reuk
a4022df686
Direct2D: Fix issue where contexts would not clear properly after pushing multiple clip layers
This issue could be seen when calling setBufferedToImage on a component
with a transparent background with a size different to the component's
size.

The details are unclear to me, but it seems like both calling Clear on
the device context, and using the COPY blend mode, ignore alpha values
and instead use a constant alpha of 1.0 when there is a geometric
clipping layer active.

As a workaround for this issue, when clearing a rectangle we now pop all
active layers, fill their intersection using the COPY blend mode while
there are no layers active, and then reinstate the layers.

The new implementation is likely to be very slow, however I think this
code path is unlikely to be used frequently in practice. The main
use-case for rendering clear transparent areas is the rendering of
buffered component images, but such cases normally use axis-aligned
clipping regions, which should be able to use the faster path.
2024-07-04 13:03:56 +01:00
reuk
f3dfd0d9be
Direct2D: Update formatting in clipToImageAlpha 2024-07-04 13:03:35 +01:00
reuk
6402641d49
Direct2D: Avoid applying pending clip list in excludeClipRectangle unless the transform is non-trivial
Frequently, excludeClipRectangle will be called several times in a row,
in order to trim away borders on each side of a rectangle. When this
happens, we want to avoid creating geometric clip layers which exclude
only two or three of the borders, and instead wait until all borders
have been excluded before applying the clip list. This way, it may be
possible to simplify the clip list to a single rectangle, which can be
implemented using the faster axis-aligned clipping layer.
2024-07-04 13:03:35 +01:00
reuk
b0bd58c5e6
Direct2D: Refactor layer storage to keep strong references to geometries and opacity brushes
Also switches to the slightly newer layer parameters type.
2024-07-04 13:03:35 +01:00
reuk
e67e78803c
Direct2D: Tidy up implementation of createBitmap and remove lineStride parameter
The lineStride parameter is only required to be set when the 'data'
pointer is also set.
2024-07-04 13:03:34 +01:00
reuk
e18b78dbb2 Resave all projects 2024-07-04 13:05:26 +02:00
attila
c4ddbecf73 SIMDRegister: Fix undefined behaviour 2024-07-04 13:05:26 +02:00
attila
18fa0bfa15 Upgrade to harfbuzz 9.0.0 2024-07-04 13:05:26 +02:00
attila
5b30f2571e Suppress warnings emitted by harfbuzz 9.0.0 2024-07-04 13:05:26 +02:00
attila
cddd850d8a OpenGLDemo: Fix GCC 14 compilation issue 2024-07-04 13:05:26 +02:00
reuk
adcdaad34f
Resave all projects 2024-07-03 21:17:28 +01:00
reuk
a858f91354
Platform: Remove deprecated code paths that will never be called 2024-07-03 14:50:08 +01:00
reuk
5cdf6abf95
Projucer: Update default Apple platforms 2024-07-03 13:50:08 +01:00
reuk
ba9b6581b7
Platform: Remove references to unsupported platforms in docs and strings 2024-07-03 13:50:08 +01:00
reuk
b89553ae2c
Platform: Remove build-time Apple SDK availability checks 2024-07-03 13:50:08 +01:00
reuk
5c1b75cab7
Platform: Remove compatibility checks for Windows 8.1 and earlier 2024-07-03 13:47:06 +01:00
reuk
8ba2dc2ae2
Platform: Remove compatibility checks for Android 20 and earlier 2024-07-03 13:45:37 +01:00
reuk
483429f432
CameraDevice: Use new ObjC method syntax in implementation 2024-07-02 18:13:59 +01:00
reuk
a59d010f99
Platform: Remove compatibility checks for iOS 12 2024-07-02 18:13:59 +01:00