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
ed
009d685179
Updated all license headers
4 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
26c9468dc5
Deprecated AffineTransform::getScaleFactor() as it was producing incorrect values for transforms containing rotations. Added getDeterminant() method for getting the determinant of the transform
5 years ago
Tom Poole
24d7a9a342
Updated some deprecated code use
5 years ago
jules
dee78f29f6
Misc cleanups and modernisation
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
tpoole
0874e47a35
Graphics code refactoring
7 years ago
hogliux
b5afccc37c
Updated file headers and the README with the JUCE 5 license
8 years ago
jules
38d49a5ee7
Modernised a few RectangleList iterators
8 years ago
jules
4583fa3fbf
Used the ignoreUnused() function to tidy up some old code
9 years ago
jules
d833ab5e33
TextLayout: added support for using the AttributedString::getLineSpacing value in DirectWrite
9 years ago
hogliux
c7b8e77031
Update copyright notice
9 years ago
jules
75770f293c
New class: SharedResourcePointer
11 years ago
jules
a2c95ce4fd
Cleaned out and optimised some graphics code.
11 years ago
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.
11 years ago
jules
ca3bc70acd
Changes to improve scaling when using cached component images and component effects.
11 years ago
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.
11 years ago
jules
2329e63f20
Converted a few Colour references to pass-by-values.
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
c7506df13f
Changed some pass-by-references to pass-by-value to improve compiler optimisation.
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
a0ed9c96e4
New class: ConcertinaPanel.
12 years ago
jules
7cd30ec175
Direct2DRenderer: added transformations.
13 years ago
jules
38aee86ed1
Tweaks to some Direct2D code.
13 years ago
jules
c38916b675
OpenGL renderer optimisations.
13 years ago
jules
b258976e6a
Internal graphics refactoring.
13 years ago
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.
13 years ago
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.
13 years ago
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..
13 years ago
Julian Storer
67e22bbb56
Added selection to treeview persistent state. Minor optimisations to AudioThumbnail. Added FTP password support for win32 networking. Cleaned up some file dependencies and altered some return value types to allow better c++0x forwarding behaviour.
14 years ago
Julian Storer
f04309f44a
Added fake placeholder versions of the new c++0x 'noexcept' and 'nullptr' keywords, and altered the library classes to use these instead of 'throw()' and '0'. This shouldn't make any difference at all to existing code, but will enable better static checking with future c++0x compilers.
14 years ago
Julian Storer
5d98779f19
Updated the date in the copyright notice.
14 years ago
Julian Storer
3dfbb0d713
Changes to Image::BitmapData constructors, replacing the bool with a more explicit enum for the read/write mode. Some win32 dLL declarator changes. Android work. Small Quicktime fix.
14 years ago
Julian Storer
41c9c9e3be
Added channel count to AudioTransportSource. Disabled some win32 compiler warnings. Made utf8 parsing cope with illegal characters. Made variants send a change when their type changes.
14 years ago
Julian Storer
5f347bc999
Updated the path flattening code to correctly observe tolerance values, and made the tolerances adapt to the scaling being used when drawing to a transformed graphics context. Fixed a small issue with focus listeners, and a mac menu dismissal problem.
14 years ago
Julian Storer
a5cf4030f5
New class LeakedObjectDetector, and JUCE_LEAK_DETECTOR macros for spotting leakages in a neat, cross-platform way. Used these to replace all the old juce_UseDebuggingNewOperator stuff in all the classes. Also some drawable and component transform fixes.
14 years ago
Julian Storer
1629f9f66a
Created a new method Graphics::beginTransparencyLayer(), to help with compositing semi-transparent rendering.
14 years ago
Julian Storer
aef3203a28
Fixed an image resizing bug. Tweaked a couple of methods in KeyMappingEditorComponent and TableListBox to return references instead of pointers. Changed Component::contains() to take a Point rather than raw coordinates. Modernised some UI classes internally. Extended some internal graphics classes to handle affine transforms.
14 years ago
Julian Storer
622f823bf7
First experimental check-in of Direct2D rendering - not for public use yet!
14 years ago