1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-28 02:30:05 +00:00
Commit graph

607 commits

Author SHA1 Message Date
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
Tom Poole
dea3fe60e4 Update copyright banners 2022-04-04 12:36:32 +01:00
Tom Poole
111bbc0979 Bump version number to 6.1.6 2022-02-28 12:53:10 +00:00
reuk
45ae98effd
OpenGLContext: Correctly size GL view when using a non-unity global scale 2022-02-23 10:56:12 +00:00
reuk
0223e44ae7
Image: Keep track of contiguous buffer size to avoid heap buffer overflows
In CoreGraphicsPixelData::createImage, image data was copied from a
BitmapData created from the Image passed into the function.

The BitmapData instance didn't keep track of the size of the buffer it
pointed to, so the buffer size was computed by multiplying the
BitmapData height by its line stride. However, if the BitmapData pointed
to a subsection of an image, the `data` pointer might be offset from
the allocated region, and `data + lineStride * height` would point past
the end of the allocated region. Trying to read/copy this range would
cause a heap buffer overflow at the end of the range.

This change adjusts BitmapData so that it keeps track of the size of the
allocated region. Taking a subsection of an image should subtract the
data pointer offset from the size of the allocated region.
2022-02-23 10:56:09 +00:00
reuk
d3c4017685
OpenGLContext: Only create and use a VAO in contexts using the core profile 2022-02-18 16:43:27 +00:00
reuk
e367393a99
OpenGL: Use a core profile when OpenGL 3.2 is requested on Windows
This mirrors the behaviour on macOS.
2022-02-18 16:43:27 +00:00
reuk
199885baa8
OpenGL: Avoid deprecated function when querying available extensions
In OpenGL 3 and up, GL_EXTENSIONS is deprecated as an argument of
glGetString and glGetStringi should be used instead.
2022-02-18 16:43:27 +00:00
reuk
01e71bc351
OpenGL: Avoid races on viewportArea and scale data members 2022-01-27 18:43:22 +00:00
reuk
e751a5edd7
OpenGL: Avoid race on minSwapTimeMs 2022-01-27 18:43:22 +00:00
Tom Poole
3c03693d07 Bump version number to 6.1.5 2022-01-26 13:00:05 +00:00
ed
6eac100a79 macOS Accessibility: Pass through accessibility hit test to accessible view in MouseForwardingNSOpenGLViewClass 2021-12-21 15:36:36 +00:00
Tom Poole
8a6e1980d0 Bump version number to 6.1.4 2021-12-20 11:06:15 +00:00
reuk
1ff05d3333
OpenGL: Avoid querying the native view hierarchy from a background thread on macOS 2021-12-15 14:14:07 +00:00
reuk
48c6087faf Thread: Update macOS thread priority calculation
The Apple threading documentation [^1] says the following:

> The second argument to pthread_setschedparam is the desired policy,
  which can currently be one of SCHED_FIFO (first in, first out),
  SCHED_RR (round-robin), or SCHED_OTHER. The SCHED_OTHER policy is
  generally used for extra policies that are specific to a given
  operating system, and should thus be avoided when writing portable
  code.

This appears to differ from the policy semantics on Linux and BSD, where
FIFO and RR are both explicitly real-time policies.

Therefore, on Linux/BSD we only enable the RR policy if the requested
priority is 8 or higher. Meanwhile, on macOS, we map all thread
priorities (0 - 10) onto the RR policy with an appropriate priority.

[^1]: https://developer.apple.com/library/archive/documentation/Darwin/Conceptual/KernelProgramming/scheduler/scheduler.html
2021-12-14 22:50:09 +00:00
reuk
44404508fe Bump version number to 6.1.3 2021-12-08 15:26:08 +00:00
ed
b620bf1d43 Windows: Use compatibility profile when creating 3.2 context to allow deprecated function use 2021-12-06 14:27:01 +00:00
ed
e52582a561 Windows: Create OpenGL 3.2 context when specified (not 3.3) 2021-12-06 14:27:01 +00:00
ed
9867ee5c30 Whitespace 2021-12-06 14:27:01 +00:00
ed
2224bb9760 Windows: Recreate OpenGL context if pixel format changes 2021-12-03 12:26:13 +00:00
reuk
c5c9f080d3
OpenGL: Ensure context is initially drawn with correct scale on macOS 2021-12-03 10:15:51 +00:00
reuk
ea8b0a2d32
OpenGL: Ensure that GL views display at the correct scale on macOS 12
Previously, we were using the window's top-left position to determine
the scale to use for the OpenGLContext. However, on macOS the
backingScaleFactor of the window is not strictly related to the top-left
corner of the window, so the OpenGL view's scale could end up differing
from the backing scale factor when slowly moving a window between
displays with different backing scale factors.

On macOS, we now use the backing scale factor of the window's screen (as
maintained by AppKit), rather than trying to work out the correct
display and scale ourselves.
2021-12-01 15:44:07 +00:00
ed
4471efd1c5 Windows: Allow OpenGL 3.3 core profile context 2021-11-30 17:07:49 +00:00
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