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
4 years ago
ed
009d685179
Updated all license headers
4 years ago
Tom Poole
6cb75d9d2c
Replaced all references to ROLI with Raw Material Software and regenerated all bytecode
5 years ago
Tom Poole
894e7d2bd2
Updated all license headers
5 years ago
ed
add88c33f2
Replaced all references to ROLI with Raw Material Software and regenerated all bytecode
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
jules
7ab4d1708b
Some misc cleanups, mainly around WeakReference usage and rectangles
6 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
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
edec7b34b2
Replaced some uses of AffineTransform::identity with a default-constructed object
9 years ago
hogliux
c7b8e77031
Update copyright notice
9 years ago
Timur Doumler
be9a2ff1bb
Implemented support for Android OpenGL native ARGB pixel format.
10 years ago
jules
e60aa581d6
Added some missing semi-colons.
10 years ago
jules
8a66ec83f0
Minor clean-ups.
11 years ago
jules
22139761dc
Couple of MSVC warning clean-ups.
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
7fb2533bb0
Some rendering fixes.
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
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
667a18712f
Added begin()/end() iterators to RectangleList. You should use these in preference to RectangleList::Iterator, as they're faster.
12 years ago
jules
295d125142
Stopped using the old BEGIN_JUCE_NAMESPACE macros, and just used hard-coded namespaces where necessary instead. The macro definitions are still there, so this shouldn't affect anyone's code.
13 years ago
jules
c38916b675
OpenGL renderer optimisations.
13 years ago
jules
b258976e6a
Internal graphics refactoring.
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
5d98779f19
Updated the date in the copyright notice.
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
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
9f0c91196f
Added method Image::getClippedImage(), which allows the use of images that refer to subsections of another image. This means that the the parameters to a couple of Graphics methods no longer need a clipping rectangle. Also dded a static Image::null object and another constructor for Image::BitmapData.
15 years ago
Julian Storer
e3d97820d1
New methods for Path, Line, ValueTree. Changed the Graphics::fillCheckerBoard parameters to take a Rectangle object. Fixed Component::centreWithSize to handle multi-monitor setups.
15 years ago
Julian Storer
00b082caf6
New arrowhead and polygon methods for Path and PathStrokeType. Tweaked a few Path methods to take Line and Point objects instead of loose coordinate parameters. Various new geometric methods and more refactoring of Drawables. Misc fixes for CoreGraphics, AudioFormat.
15 years ago
Julian Storer
1751beed57
Code clean-ups. Jucer development.
15 years ago
Julian Storer
42666db484
Some win32 clean-ups.
15 years ago
Julian Storer
7ed446b5fd
Tweak to TextInputTarget. Code clean-ups. Jucer development.
15 years ago
Julian Storer
27506c2120
Copyright notice update.
15 years ago
Julian Storer
7bc24ae42a
The Point and Rectangle classes are now templated, so can be used for either float or int co-ordinates. This means that wherever you've used these classes, you'll need to replace them with Rectangle<int> or Point<float> in your code. A couple of methods in Path have changed to take advantage of the new ability.
15 years ago
Julian Storer
6a4e8f235c
Minor fixes and warning removals for VC7.
15 years ago
Julian Storer
0744c0db37
New class: TemporaryFile, which manages a temporary file, deleting it when it goes out of scope. Also fixes for compile problems in VC7.
15 years ago
Julian Storer
97035bb3a1
Removed the (rather pointless) granularity value from the array objects. Converted a few macros into functions and other misc code clean-ups.
15 years ago
Julian Storer
80753f4c03
Lots of minor changes to prevent warnings. Small fixes to Path, AudioThumbnail, ValueTree, OutputStreams. Tweaks to convert Drawables to/from ValueTrees. New method to write XML to a stream.
15 years ago
Julian Storer
01f109e857
More graphics updates - new class FillType, which is now used by DrawablePath to specify its colours. New methods Graphics::clipToPath and Graphics::clipToImageAlpha. Added dynamic Xinerama loading.
15 years ago
Julian Storer
f6a088961f
Removed the Brush classes - everything they used to do can still be done by other methods in the Graphics class. Also did more optimising of the graphics contexts, both software and CoreGraphics.
15 years ago
Julian Storer
6fdde63a63
Big rewrite of the LowLevelGraphicsSoftwareRenderer class, adding internal support for complex clipping regions - this will temporarily make font rendering quite slow, until it gets re-optimised for this new design. Changed the Image class to remove the lockPixelData methods, and replaced these with an object Image::BitmapData, which is easier to use.
15 years ago