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

103 commits

Author SHA1 Message Date
reuk
28414a6af8
Global: Avoid floating-point equality checks where possible 2023-04-04 19:55:11 +01:00
Tom Poole
2ec861d99e Update licensing banners to JUCE 7 2022-05-16 17:55:48 +01:00
Tom Poole
dea3fe60e4 Update copyright banners 2022-04-04 12:36:32 +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
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
ed
009d685179 Updated all license headers 2020-06-29 08:30:22 +01:00
Tom Poole
894e7d2bd2 Updated all license headers 2020-04-23 17:30:39 +01:00
reuk
5f348c3040 Warnings: Add warning-wrangling header 2020-04-13 13:16:05 +01:00
reuk
327f817b9b Copyrights: Update commercial/gpl headers to be gpl-only 2020-04-09 15:22:56 +01:00
ed
26c9468dc5 Deprecated AffineTransform::getScaleFactor() as it was producing incorrect values for transforms containing rotations. Added getDeterminant() method for getting the determinant of the transform 2020-03-30 18:34:19 +01:00
ed
59a058fdc6 Fixed some warnings flagged up when enabling -Wswitch-enum, -Wswitch-default, -Wredundant-decls, and -Wimplicit-fallthrough 2020-03-09 17:39:28 +00:00
jules
f58eacc135 Added more unique_ptr use, for functions that create LowLevelGraphicsContext or ImageType objects. 2019-05-15 12:08:38 +01:00
Tom Poole
4e0adb2af8 GCC 9 compatibility fixes 2019-04-30 17:46:15 +01:00
ed
a234721110 Added various clang-tidy modernize-* fixes 2019-01-31 15:15:31 +00:00
jules
6fda0bffca Fixed some stray zeros that were still being passed as null pointers 2018-10-05 12:15:04 +01:00
Tom Poole
0e1722e387 Multiple spelling fixes 2018-08-20 18:16:24 +01:00
Tom Poole
08d67c763f Made some JUCE classes TriviallyCopyable 2018-07-11 09:17:31 +01:00
jules
1e6bbb8da9 Added some methods to allow ReferenceCountedObjectPtrs to be constructed or copied from references as well as pointers - as well as increasing safety, this actually makes things a bit more efficient as it skips a nullptr check. Updated lots of places in the code that could take advantage of this 2018-07-03 11:51:13 +01:00
Tom Poole
102ed4a9f2 Fixed some compiler warnings 2018-06-27 17:02:25 +01:00
jules
49aa9c9db4 Added flag JUCE_STRICT_REFCOUNTEDPOINTER which is recommended to avoid accidental leaks when using ref-counted pointers. Enabled this flag in the demo projects, and used it to help tidy up some dubious smart-pointer use 2018-06-26 14:06:52 +01:00
jules
974b4a8351 Removed some legacy friend class declarations that are no longer needed with modern compilers 2018-06-13 17:11:37 +01:00
jules
38295f332b Converted some old typedefs to using declarations 2018-05-03 09:59:05 +01:00
Tom Poole
ab863a6dc2 Replaced all usage of ScopedPointer with std::unique_ptr 2018-04-19 20:27:47 +01:00
ed
cdbc28c18b Add documentation tags 2018-03-15 12:10:32 +00:00
jules
e1f57f64da Optimised a couple of places in the software/GL render engines where copies of RectangleLists could be avoided 2018-02-07 15:53:54 +00:00
jules
1a60fa9765 More ScopedPointer/unique_ptr compatibility work 2018-01-10 17:35:08 +00:00
jules
48a5fbd333 Another batch of ScopedPointer cleanups 2018-01-10 14:49:57 +00:00
jules
78b0ab6442 A few code cleanups 2018-01-09 14:28:08 +00:00
jules
3ec5c17bb1 Misc cleanups relating to ScopedPointer 2018-01-08 18:03:26 +00:00
jules
3e73e11d82 Avoided a visual studio warning 2017-11-03 14:12:49 +00:00
jules
9d56e2990d Optimised the GL renderer to avoid splitting large rectangles into horizontal strips unnecessarily 2017-11-03 13:51:37 +00:00
jules
2dc9316420 Misc ScopedPointer changes to start using reset() and get() rather than assignments and casts (part of an ongoing drift towards more std::unique_ptr compatibility) 2017-11-01 17:41:06 +00:00
jules
eda613c6db Moved all "namespace juce" declarations from module headers to the individual .h and .cpp source files. This makes life a lot easier for Intellisense and other IDE autocompletion tools 2017-09-08 08:59:55 +01:00
jules
7c6f3d40b6 Tidied up some method calls involving HeapBlock 2017-09-05 16:06:57 +01:00
jules
3df7f8ff8b Did a bit of minor modernising in Graphics + Path 2017-08-09 10:41:08 +01:00
hogliux
b5afccc37c Updated file headers and the README with the JUCE 5 license 2017-04-27 14:43:04 +01:00
jules
bf94ab0e4c Made a few minor tweaks to reduce the number of pedantic -Wfloat-equals warnings 2017-04-21 15:09:35 +01:00
jules
38d49a5ee7 Modernised a few RectangleList iterators 2017-04-03 16:08:07 +01:00
hogliux
2da1bc5f41 Replace include guards with "#pragma once" 2017-02-01 17:18:07 +00:00
ed
aff5ea5a9b Replaced two instances of src[1] with src[0] in the render4PixelAverage method as adding pixelStride handles the offset 2016-09-21 09:54:18 +01:00
jules
edec7b34b2 Replaced some uses of AffineTransform::identity with a default-constructed object 2015-12-22 17:46:31 +00:00
jules
6f092d602d Rendering optimisation when filling off-screen paths 2015-12-22 10:26:03 +00:00
hogliux
c7b8e77031 Update copyright notice 2015-07-22 15:59:34 +01:00
jules
f6395d4cda Raised the warnings level in the introjucer, and fixed a few warnings that were thrown up by this. 2015-03-31 11:44:10 +01:00
jules
c304ea1e15 Made a couple of internal glyph handling methods public to help 3rd party tweaking. 2015-02-03 09:27:29 +00:00
jules
7d8b9ad597 Avoided a few linux gcc warnings. 2014-08-05 13:29:18 +01:00
jules
d7777c87c5 Avoiding a VC warning. 2014-04-13 12:43:12 +01:00
jules
bcce4e388a Minor optimisation in software image rendering. 2014-04-12 12:21:17 +01:00
jules
f4c83a9411 Fix for a very obscure race-condition involving font string initialisation. 2014-04-05 17:39:31 +01:00
jules
6c17d3ca74 GlyphCache multithreading fix. 2014-03-20 13:08:27 +00:00