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

649 commits

Author SHA1 Message Date
Anthony Nicholls
158220ddfa Formatting: Use nested namespace definitions 2023-10-09 14:49:18 +01:00
Tom Poole
4153d59e39 Formatting 2023-10-02 15:42:20 +01:00
Tom Poole
7d45d498b9 Removed some superfluous consts from definitions 2023-09-20 16:31:10 +01:00
Tom Poole
9b041f3d74 Add a base clang-tidy configuration 2023-09-18 11:24:19 +01:00
Tom Poole
b769982bb5 Bump version number to 7.0.7 2023-08-23 09:06:58 +01:00
Tom Poole
d5cb08e60e Bump version number to 7.0.6 2023-08-03 10:58:48 +01:00
reuk
17deafbb0d
OpenGL: Ensure a VAO is bound before calling user render callback 2023-08-01 13:41:30 +01:00
reuk
f012f8c280
OpenGL: Keep track of previously-attached VAOs and buffers when creating additional GL-backed Graphics contexts
Previously, code such as the following (where MyGLComponent is rendering
using an OpenGLContext) could result in GL errors, as the destruction of
the inner context unbound the array buffer and element array buffer
after use, instead of setting them to the previous values set up by the
outer context.

Additionally, a VAO was only set up in the OpenGLContext, so rendering
into a GL-backed LowLevel graphics context could fail if no VAO was
bound.

    void MyGLComponent::paint (juce::Graphics& g)
    {
        juce::Image image { juce::Image::PixelFormat::ARGB, width, height, false, juce::OpenGLImageType() };

        {
            juce::Graphics innerContext { image };
            // draw into innerContext
        }

        g.drawImage (image, juce::Rectangle<float> { width, height });
    }
2023-06-08 15:26:24 +01:00
reuk
c2949edda0
OpenGL: Avoid taking X lock when swapping buffers to reduce lock contention 2023-06-01 18:51:25 +01:00
reuk
ed15516087
OpenGL: Use newer GLX APIs 2023-06-01 18:51:06 +01:00
reuk
722b552657
OpenGL: Avoid signed integer truncation when computing frame time differences 2023-06-01 18:49:32 +01:00
reuk
28414a6af8
Global: Avoid floating-point equality checks where possible 2023-04-04 19:55:11 +01:00
Anthony Nicholls
05d5c94990
Native: Rename all native files for improved consistency 2023-04-04 19:54:29 +01:00
reuk
16929c26f7
OpenGLContext: Avoid calling NSView::window from displaylink thread 2023-03-14 19:08:07 +00:00
reuk
af2a4a7e2a
OpenGL: Avoid enabling GL_TEXTURE_2D in core profile contexts 2023-03-06 12:35:26 +00:00
reuk
42021e3e9a
OpenGL: Avoid rare race on members used to compute frame times 2023-03-02 12:03:31 +00:00
reuk
c08a1827b5
OpenGL: Ensure flushBuffer can't be called simultaneously from multiple threads on macOS 10.13 or earlier
On these platforms, calling flushBuffer from multiple threads
simultaneously will lead to deadlocks.
2023-03-02 12:03:31 +00:00
reuk
ae45bb4c35
OpenGLContext: Fix signature of DEBUGPROC 2023-02-22 21:00:18 +00:00
Tom Poole
29a90a0231
BSD: Fix some compiler warnings 2023-02-14 17:00:02 +00:00
reuk
a59cba010b
ColourGradient: Create lookup tables using non-premultiplied colours
The OpenGL renderer uses ColourGradient::createLookupTable to generate
gradient textures. However, the tweening method used was different to
the tweening used by CoreGraphics gradients, and by the software
renderer.

Gradient tweening is now computed using non-premultiplied colours, to
ensure consistency between gradients rendered using OpenGL, and with
other renderers.
2023-02-09 17:54:19 +00:00
Tom Poole
78f1baae08 Bump version number to 7.0.5 2023-01-25 11:37:31 +00:00
Tom Poole
715fa7e8dc Bump version number to 7.0.4 2023-01-05 14:36:45 +00:00
reuk
8374725f98
XWindowSystem: Use ScopedWindowAssociation for improved DRYness 2022-12-14 11:12:32 +00:00
reuk
bac51aba8f
OpenGL: Avoid dispatching events to the OpenGL component peer after it is destroyed
The significant change here is that the XSaveContext call in the OpenGL
NativeContext now has a matching XDeleteContext call. This breaks the
connection between the X window and the ComponentPeer, so that we avoid
dereferencing a dangling ComponentPeer pointer if the window receives
events after the peer is destroyed.
2022-12-14 11:12:32 +00:00
reuk
f2d0d9cde8
OpenGL: Add back CVDisplayLink-driven drawing 2022-12-14 11:12:32 +00:00
reuk
da38c1ed2a
TextInputTarget: Improve IME support on Android 2022-12-07 13:12:02 +00:00
reuk
28f2157912
Convert ignoreUnused to [[maybe_unused]] 2022-12-01 11:41:50 +00:00
Tom Poole
306ed633c6 Bump version number to 7.0.3 2022-11-29 11:04:54 +00:00
reuk
0fbd7d7b3f
Functional: Add ScopeGuard implementation 2022-11-02 11:38:29 +00:00
reuk
d8301ddc1c
OpenGL: Tidy up macOS implementation 2022-10-06 17:35:17 +01:00
reuk
7e404118b5
OpenGL: Correctly report OpenGL rendering scale in Pro Tools 2022.7 on Windows 2022-09-27 15:18:21 +01:00
reuk
19175ff698
OpenGL: Ensure that macOS uses the same (sRGB) colour space everywhere 2022-09-27 15:18:21 +01:00
reuk
2ae87f95f1
OpenGL: Carry out all GL rendering on a single thread 2022-09-27 15:18:21 +01:00
reuk
ae3bfdb1d2
OpenGL: Avoid occasional deadlock when destroying contexts 2022-09-26 18:03:47 +01:00
reuk
18aaa86761
OpenGL: Reduce error checking in Release builds 2022-09-26 18:03:47 +01:00
reuk
ff1d5d6da4
OpenGL: Only assert on high-severity errors 2022-09-26 18:03:47 +01:00
reuk
b3a4d54a72
Build: Update the minimum C++ standard to C++17 2022-09-12 16:14:57 +01:00
reuk
8ec8e36f5c OpenGLContext: Swap buffers on the main thread
This change fixes an issue where opening multiple OpenGLContexts on
certain versions of macOS (observed on 10.13) could cause a deadlock.

The issue can be reproduced by:
- Attaching an OpenGL context to the AudioPluginDemo editor
- Opening multiple copies of the editor simultaneously in a plugin host.
  I tested with Live 10.

I also observed the issue in a standalone app that opened new windows
containing OpenGLContexts on a timer.
2022-08-31 17:42:48 +01:00
reuk
322aa64459 OpenGLContext: Share CVDisplayLinks with NSViewComponentPeer 2022-08-31 17:42:47 +01:00
reuk
b27af5def9 OpenGL: Tidying 2022-08-31 17:42:47 +01:00
reuk
e64f87b26c OpenGL: Allow setting window bounds from repaint callback
On Windows, the OpenGL context window sometimes receives a repaint
request after moving between screens with different scale factors.
If the screen has changed size/scale since the last paint operation,
failing to invalidate the painted area may cause the screen contents
to be drawn at the wrong scale until paint is next called.
2022-08-31 17:42:47 +01:00
reuk
02b5ab748a OpenGL: Add support for a few more OpenGL profiles
- 4.1 and 4.3 contexts can now be requested
- The requested context version is no longer ignored on Linux
- Debugging contexts are now enabled in Debug builds with GL 4.3
- Fixes a bug where glEnable(GL_TEXTURE_2D) was called in core profiles
2022-08-31 17:42:47 +01:00
Tom Poole
7296b8e3f7 Bump version number to 7.0.2 2022-08-15 17:26:35 +01:00
reuk
9712775e5b
macOS: Remove macOS 10.12 preprocessor checks
The current minimum-supported Xcode (10.1) includes the macOS 10.14.1
SDK, so APIs from macOS 10.12 will always be available.
2022-08-04 22:51:17 +01:00
Tom Poole
7612f446b5 Matrix3D: Fixed an ordering bug in the multiplication operator 2022-07-28 21:31:47 +01:00
Tom Poole
fd8607302d Bump version number to 7.0.1 2022-07-04 15:07:43 +01:00
Tom Poole
8b399998b4 Bump version number to 7.0.0 2022-06-21 08:38:55 +01:00
reuk
b80f77f8b1
Android: Allow TalkBack borders to be displayed on OpenGL views 2022-06-13 15:29:57 +01:00
Tom Poole
2ec861d99e Update licensing banners to JUCE 7 2022-05-16 17:55:48 +01:00
reuk
7815d2007b
OpenGL: Set OpenGL view position correctly after adjusting the global scale factor 2022-04-22 14:18:49 +01:00