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

34 commits

Author SHA1 Message Date
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
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
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
Tom Poole
24d7a9a342 Updated some deprecated code use 2019-11-29 10:21:28 +00:00
jules
dee78f29f6 Misc cleanups and modernisation 2018-05-11 12:46:30 +01: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
tpoole
0874e47a35 Graphics code refactoring 2017-06-27 15:31:54 +01:00
hogliux
b5afccc37c Updated file headers and the README with the JUCE 5 license 2017-04-27 14:43:04 +01:00
jules
38d49a5ee7 Modernised a few RectangleList iterators 2017-04-03 16:08:07 +01:00
jules
4583fa3fbf Used the ignoreUnused() function to tidy up some old code 2015-12-23 16:27:50 +00:00
jules
d833ab5e33 TextLayout: added support for using the AttributedString::getLineSpacing value in DirectWrite 2015-11-24 17:53:11 +00:00
hogliux
c7b8e77031 Update copyright notice 2015-07-22 15:59:34 +01:00
jules
75770f293c New class: SharedResourcePointer 2014-04-14 13:13:07 +01:00
jules
a2c95ce4fd Cleaned out and optimised some graphics code. 2013-09-04 13:38:54 +01:00
jules
dbf7053861 New method Graphics::fillRectList(), which performs better (and looks better when scaled) than multiple calls to fillRect or drawVerticalLine. Also fixed DPI detection in Windows. 2013-08-30 18:20:51 +01:00
jules
ca3bc70acd Changes to improve scaling when using cached component images and component effects. 2013-08-19 19:17:59 +01:00
jules
1b9a60e52c Added a templated type to the RectangleList class. If you've used this class and these changes cause syntax errors, all you need to do to your code is to replace "RectangleList" with "RectangleList<int>" and everything will work as it did before. 2013-07-28 18:08:28 +01:00
jules
2329e63f20 Converted a few Colour references to pass-by-values. 2013-07-01 17:38:47 +01:00
jules
03c2801f3f Copyright header update in all module files. juce_core modules are now ISC licensed. All other modules are GPLv2/3/AGPLv3 2013-06-13 13:17:12 +01:00
jules
c7506df13f Changed some pass-by-references to pass-by-value to improve compiler optimisation. 2013-05-22 23:05:53 -06:00
jules
2ae82c4db4 New method Font::withPointHeight, for specifying font sizes in points. 2012-12-17 21:27:23 +00:00
jules
0ceeb573d8 Minor changes to avoid pedantic compiler warnings. 2012-12-04 21:39:15 +00:00
jules
a0ed9c96e4 New class: ConcertinaPanel. 2012-08-05 22:09:26 +01:00
jules
7cd30ec175 Direct2DRenderer: added transformations. 2012-05-26 12:44:31 +01:00
jules
38aee86ed1 Tweaks to some Direct2D code. 2012-05-23 17:47:53 +01:00
jules
c38916b675 OpenGL renderer optimisations. 2011-12-22 18:32:34 +00:00
jules
b258976e6a Internal graphics refactoring. 2011-10-16 17:30:33 +01:00
jules
ce0b4bdb9c Support for writing JPG even if the image has an alpha channel. Added assertion to warn if you try to use a fallback font on OSX. Minor fixes and features for PopupMenu, ComboBox. 2011-09-28 17:10:38 +01:00
Julian Storer
2c328dfedc Changed some return types from being const objects to non-const objects (for better c++11 compliance in future). This may mean that you need to remove the 'const' from your own code if you override the virtual methods that have changed. 2011-08-19 21:34:34 +01:00
Julian Storer
b70e0a28d2 First check-in of the "jucequake": a major re-organisation of the library to break it up into modules. For more details about this, see the website forum.. 2011-08-12 10:04:52 +01:00
Renamed from src/native/windows/juce_win32_Direct2DGraphicsContext.cpp (Browse further)