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 */ });
3 years ago
reuk
394c4fd475
Clang: Fix warnings when building with clang 10
5 years ago
ed
009d685179
Updated all license headers
5 years ago
reuk
20fd6902d7
Font: Fix deadlock in findTypefaceFor
5 years ago
reuk
3a9e26b26c
Font: Fix deadlock in findTypefaceFor
5 years ago
Tom Poole
894e7d2bd2
Updated all license headers
5 years ago
Tom Poole
2d16374b14
Updated all license headers
5 years ago
reuk
327f817b9b
Copyrights: Update commercial/gpl headers to be gpl-only
5 years ago
ed
eaf0f990d4
Replaced all uses of static_cast<Type&&> with std::move
6 years ago
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
7 years ago
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
7 years ago
jules
87042769b6
Tidied up some more old typedefs
7 years ago
jules
58a99ff139
Dragged the singleton macros into the 21st century.. Cleaned up their implementation and gave them new upper-case names to match juce official style. The old names are still defined to avoid breaking old code, but please update before they get deprecated!
7 years ago
jules
2fcb8fa71b
Added some prototype function definitions to avoid compiler warnings for people who enable the "missing prototype" flag
7 years ago
jules
3d7c777238
Some light modernisation of a bunch of old code
7 years ago
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
7 years ago
jules
66fa7e7411
Added some assertions to catch use of some Font methods on background threads
8 years ago
hogliux
b5afccc37c
Updated file headers and the README with the JUCE 5 license
8 years ago
jules
bf94ab0e4c
Made a few minor tweaks to reduce the number of pedantic -Wfloat-equals warnings
8 years ago
hogliux
9f3fb1c0a6
Added a compiler error if your compiler is too old and removed numerous code checks for old compilers which are now deprecated
8 years ago
jules
2a1234b6ac
Simplified some inter-module dependencies and exception-catching fallbacks
9 years ago
jules
9a1a58c454
Tweaked Font::getStringWidth to round-up the value it returns as an int.
10 years ago
hogliux
c7b8e77031
Update copyright notice
10 years ago
jules
4e4a9968a3
Reverted my typo that had changed the minimum font horizontal scale from the old default 0.7
10 years ago
jules
844d9e8d86
Added method Font::getDefaultMinimumHorizontalScaleFactor() to make it possible to change the global minimum font squashing amount.
10 years ago
jules
50a55b2e9c
Avoided a few compiler warnings.
10 years ago
jules
02460bb95b
A bit of refactoring inside GlyphArrangement, to avoid som edge-cases where the wrong number of lines is chosen.
11 years ago
jules
f4c83a9411
Fix for a very obscure race-condition involving font string initialisation.
11 years ago
jules
a8984031ba
Made sure that glyph caches are flushed along with the typeface cache.
11 years ago
jules
af87a2eda6
Added some thread-safety to typeface caching, and optimised default font construction.
11 years ago
jules
c5f1e86cb3
Added some point-size accessor methods to Font.
12 years ago
jules
03c2801f3f
Copyright header update in all module files. juce_core modules are now ISC licensed. All other modules are GPLv2/3/AGPLv3
12 years ago
jules
136041daa7
Fixed a couple of base-class copying typos and prevented copying of ReferenceCountedObject bases.
12 years ago
jules
d0135d9efc
Worked around a GCC compiler bug. Also tidied up a bunch of GCC warnings.
12 years ago
jules
2ae82c4db4
New method Font::withPointHeight, for specifying font sizes in points.
12 years ago
jules
0ceeb573d8
Minor changes to avoid pedantic compiler warnings.
12 years ago
jules
3f6714ea7d
Fixed a leak.
12 years ago
jules
ed83df2d75
Fonts: fix for changing height of customised typefaces.
12 years ago
jules
6b1654e1d2
Fixed some more warnings.
12 years ago
jules
fb5bcb5094
Removed a confusing Font constructor that took a style name but could be mistakenly called with a typeface name.
13 years ago
jules
df729be74a
Cleaned-up class inheritance visibilities and encapsulation for some internal classes.
13 years ago
jules
502af083aa
Fixed a bug in Font::setUnderline().
13 years ago
jules
46c327d902
Font::fromString() fix.
13 years ago
jules
b6211f01c8
Added method: Font::withTypefaceStyle().
13 years ago
jules
625395fc98
Fix for Typeface::clearTypefaceCache()
13 years ago
jules
eeeaf832d5
Added a Typeface::clearTypefaceCache() method.
13 years ago
jules
ec89065a44
Improved thread-safety of Typeface::Ptr
13 years ago
jules
f401d72b4b
Tidied up some minor font issues.
13 years ago
jules
7e9fbd30c3
Some font style tweaks, and update of the juce demo fonts page to show a list of available styles.
13 years ago
jules
941907a3d1
Initial commit of font style access, providing access to the styles available for each font family.
13 years ago