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

727 commits

Author SHA1 Message Date
reuk
efdb3ec72f
OpenGL: Make version number parsing slightly more robust
This fixes an issue on iOS platforms where the version number string is
prefixed with "OpenGL ES " despite the Khronos docs for OpenGL ES
specifying that "The GL_VERSION and GL_SHADING_LANGUAGE_VERSION strings
begin with a version number".
2021-11-24 16:20:37 +00:00
reuk
e97f7d1c6c
OpenGLContext: Use high-priority thread for OpenGL renderer to smooth animations on M1 machines 2021-11-24 16:20:37 +00:00
reuk
81fa777ff7
ObjC Helpers: Automatically derive appropriate signature for function 2021-11-24 11:51:11 +00:00
reuk
6d3504adfa
OpenGLContext: Fix thread/consistency warnings on macOS
Previously, Xcode's main thread checker would complain when selecting
the "OpenGL Renderer" in the DemoRunner on macOS.
2021-10-25 09:51:20 +01:00
ed
7d1918b385 macOS/iOS: Replace compile-time deployment target checks with runtime checks using the available keyword 2021-10-13 15:06:18 +01:00
ed
b9542ccc4c Update code to use C++14 [[deprecated]] attribute
This commit removes the various compiler-specific JUCE_DEPRECATED macros and replaces them with C++14's deprecated attribute. It also removes the JUCE_CATCH_DEPRECATED_CODE_MISUSE flag as we can rely on the override specifier catching usage of these old virtual methods, and tidies up the DOXYGEN preprocessor checks as they were inconsistent across the codebase.
2021-09-29 16:14:00 +01:00
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
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
Tom Poole
bc75010116 Bump version number to 6.1.2 2021-09-20 12:15:47 +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
Tom Poole
46fe3789fc Bump version number to 6.1.0 2021-08-23 09:55:56 +01:00
reuk
80239b4d50
OpenGL: Only load the core API by default
See the breaking changes document for more details.
2021-08-11 14:31:48 +01:00
reuk
8022356d2b
OpenGL: Avoid dlsym calls for weak-linked symbols on macOS 2021-08-11 14:24:16 +01:00
reuk
90ad1877af
OpenGL: Only use vertex arrays if the GL version is greater or equal to 3 2021-07-14 14:49:15 +01:00
reuk
d64c4277b4
OpenGL: Reinstate ifdef which was removed accidentally 2021-07-14 14:47:56 +01:00
reuk
280d97eb79 OpenGL: Check at runtime whether non-power-of-two textures are supported 2021-07-05 12:21:36 +01:00
reuk
f0b515cc73 OpenGL: Fix shader compilation on Ubuntu 18.04
Previously, we were always adding a #version 150 directive to shaders
when the GLSL version was higher than 1.2, which could cause compilation
to fail on platforms with GLSL versions between 1.2 and 1.5.
2021-07-05 12:21:36 +01:00
Tom Poole
78be43888e Update the minimum C++ standard to C++14 2021-06-24 16:09:48 +01:00
ed
dc61bd63e7 macOS: Manually reset repaint WaitableEvent when using CVDisplayLink 2021-06-15 10:15:02 +01:00
reuk
7ac6911ccc
Windows: Fix clang/gnu compiler warnings 2021-06-03 17:30:44 +01:00
reuk
28882b788a
OpenGL: Add missing function annotations 2021-05-27 16:06:22 +01:00
reuk
31a7c62baf
Windows: Fix and suppress some analysis warnings
This fixes warnings that are emitted when building with the `-analyze`
flag enabled.
2021-05-26 15:34:26 +01:00
reuk
54423f6583
OpenGL: Add GLEW-inspired dynamic function loading 2021-05-26 11:23:49 +01:00
Tom Poole
79fbde7099 Added preliminary support for FreeBSD 2021-03-29 14:16:46 +01:00
Tom Poole
4c58e50f2e Bump version number to 6.0.8 2021-03-22 09:24:48 +00:00
ed
22777e5480 Linux: Remove embedded OpenGL window events from event queue when destroying
This fixes BadWindow errors from Expose events that may be processed after the window is destroyed.
2021-03-12 11:02:24 +00:00
ed
f6338c0f8e Windows: Added ScopedThreadDPIAwarenessSetter for correctly setting and resetting thread DPI-awareness for methods which interact with an HWND and removed some DPI workarounds 2021-03-02 15:56:10 +00:00
reuk
a31a4dc5f7
X11: Ensure repainting still works after destorying a GL context
On Linux, repaints are only issued if the number of received SHM
completion events matches the number of events initiated with
`xShmPutImage`.

Previously, destroying a GL context was calling `XSync (display, True)`
which cleared the event queue. Sometimes, this would cause an 'SHM
Completion Event' to be removed from the queue. This meant that the
number of received events would never match the number of initiated
events, and repainting would stop indefinitely.

By calling `XSync (display, False)` instead, we ensure that pending
events are kept in the queue, so any pending SHM completion event will
be found as usual during the next repaint timer callback.
2021-02-18 11:46:48 +00:00
Tom Poole
2553336f45 Bump version number to 6.0.7 2021-01-14 17:26:20 +00:00
Tom Poole
25dccd53c0 Bump version number to 6.0.6 2021-01-13 16:06:01 +00:00
ed
088e100c1f Narrowed the scoped of some undeclared Objective-C selector warnings 2020-12-10 12:48:42 +00:00
Tom Poole
5929103a29 Bump version number to 6.0.5 2020-12-01 10:08:50 +00:00
ed
b7e28541ca Replaced deprecated Displays methods 2020-10-27 12:38:59 +00:00
ed
d83b3f7716 iOS: Convert logical to physical bounds when resolving OpenGL multisampled framebuffers 2020-10-20 10:00:35 +01:00
Tom Poole
c35bb61c8d Bump version number to 6.0.4 2020-10-14 11:40:30 +01:00
Tom Poole
73d1a1ff45 Bump version number to 6.0.3 2020-10-05 18:33:04 +01:00
Tom Poole
c9aba7f613 Bump version number to 6.0.2 2020-10-05 17:05:28 +01:00
ed
ccfee61773 iOS: Removed some unused deployment target checks 2020-07-20 17:17:53 +01:00
ed
6aeb9d7dda Bump version number to 6.0.1 2020-07-07 12:47:58 +01:00
ed
a95ec7bc8f Linux: Check parent window is still valid before unmapping/destroying embedded OpenGL window 2020-07-06 14:10:49 +01:00
reuk
394c4fd475 Clang: Fix warnings when building with clang 10 2020-07-01 10:00:43 +01:00
ed
009d685179 Updated all license headers 2020-06-29 08:30:22 +01:00
ed
67925d384f Updated main README with CMake support info and changed docs extension from .txt to .md 2020-06-29 08:30:00 +01:00