attila
ade5461de3
Typeface: Add getGlyphBounds
2024-04-18 14:16:01 +01:00
attila
a2c7f1ea37
Add new Range related types that help working with attributed text
2024-04-18 14:16:01 +01:00
reuk
1560f87111
LowLevelGraphicsContext: Replace glyph drawing functions with single drawGlyphs()
2024-04-18 14:16:01 +01:00
reuk
4533077b75
LookAndFeel: Allow specifying a default typeface metrics kind to use
2024-04-18 14:16:00 +01:00
reuk
fa81badb30
Typeface: Add simple tests for typeface metrics
2024-04-18 14:16:00 +01:00
reuk
c2fce879c5
Font: Allow switching between legacy non-portable metrics, and new portable metrics
2024-04-18 14:16:00 +01:00
reuk
4f2c287f9b
Font: Deprecate old Font constructors
2024-04-18 14:16:00 +01:00
reuk
2ed9b84070
Font: Add new FontOptions type
2024-04-18 14:16:00 +01:00
reuk
d406d51ad0
TypefaceCache: Refactor to make more concise
2024-04-18 14:16:00 +01:00
reuk
9c1c61a06e
Android: Attempt to load legacy emoji font if fallback selects incompatible font
2024-04-18 14:15:59 +01:00
reuk
b42fd71c9e
Typeface: Add API to determine colour technologies used by fonts
2024-04-18 14:15:59 +01:00
reuk
6c4c78baac
Typeface: Fix advances for Apple Color Emoji
...
The glyph spacing for this font does not scale linearly with the font
size; at smaller font sizes, the spacing is relatively larger.
Typeface::getStringWidth, Typeface::getGlyphPositions, and the
equivalent Font member functions now take the font size and horizontal
scale into account when computing advances on Apple platforms.
2024-04-18 14:15:59 +01:00
reuk
4e90ef831b
Typeface: Add support for rendering COLRv0 glyphs and png-based glyphs
...
This is sufficient for initial support of the system emoji fonts on each
platform:
- Noto Color Emoji on Linux and Android, png-based
- Apple Color Emoji on macOS and iOS, png-based
- Segoe UI Emoji on Windows 10 and 11, COLRv0-based
- This font also provides COLRv1 support, at least on Windows 11,
but JUCE will ignore that and use the COLRv0 data instead
2024-04-18 14:15:59 +01:00
reuk
0da52a8e7b
FreeType: Enable non-scalable glyphs, required for png emoji support
2024-04-18 14:15:59 +01:00
reuk
72819437e7
RenderingHelpers: Move drawGlyph to a common location
2024-04-18 14:15:59 +01:00
reuk
722ff41d66
RenderingHelpers: Individually template ClipRegion types
2024-04-18 14:15:59 +01:00
reuk
830bccd05f
RenderingHelpers: Disable gamma correction, which breaks colour emoji rendering
2024-04-18 14:15:59 +01:00
reuk
c40da067cd
RenderingHelpers: Implement GlyphCache in terms of LruCache
2024-04-18 14:15:59 +01:00
reuk
bc654f8007
RenderingHelpers: Reduce templating of GlyphCache
2024-04-18 14:15:58 +01:00
reuk
f5017be881
RenderingHelpers: Reduce templating of CachedGlyphEdgeTable
2024-04-18 14:15:58 +01:00
reuk
a1b23c0248
Font: Add support for querying fallbacks
2024-04-18 14:15:58 +01:00
reuk
a6a336acb8
Typeface: Add support for querying system fallbacks
2024-04-17 14:41:01 +01:00
reuk
ce4f5377dd
Typeface: Switch to using harfbuzz for computing simple advances on all platforms
2024-04-17 14:41:01 +01:00
reuk
ec2d221b08
Font: Update return type of getOutlineForGlyph
2024-04-17 14:41:01 +01:00
reuk
0d2e34f34c
Typeface: Implement platform typefaces using Harfbuzz hb_font_t
2024-04-17 14:41:00 +01:00
reuk
080ac6e7e7
LruCache: Factor out of GlyphArrangementCache
2024-04-17 14:41:00 +01:00
reuk
b2422514db
juce_graphics: Add FunctionPointerDestructor utility
2024-04-17 14:41:00 +01:00
reuk
f491f126b7
Add Harfbuzz dependency
2024-04-17 14:41:00 +01:00
reuk
bafd0d293b
Android: Bring font metrics in line with other platforms
...
This updates the behaviour of Typeface::getStringWidth,
Typeface::getGlyphPositions, and Typeface::getEdgeTableForGlyph to match
the documented behaviour of these functions. Previously, these functions
returned results normalised to a size of 1 point. The new (documented)
behaviour is to normalise to a JUCE height of 1.0 - that is, scaled so
that the sum of the ascent and descent is equal to 1.0.
2024-04-16 21:07:45 +01:00
reuk
1f9ba0682c
ComSmartPtr: Make ownership more explicit
...
COM objects now always start with a refcount of 1, as is convention.
2024-04-16 21:07:45 +01:00
Tom Poole
2fc069b450
Bump version number to 8.0.0
2024-04-16 17:43:20 +01:00
Tom Poole
94d98a2b10
Update licensing information
2024-04-16 11:39:35 +01:00
Tom Poole
1d83803a18
Bump version number to 7.0.12
2024-04-15 10:27:43 +01:00
Tom Poole
aace97904c
Bump version number to 7.0.11
2024-03-26 08:04:02 +00:00
Anthony Nicholls
525e9e9ded
macOS: Prevent an empty RectangleList from incorrectly filling a graphics context
2024-02-29 12:21:10 +00:00
Tom Poole
4555a8d1ad
Bump version number to 7.0.10
2024-02-12 15:15:15 +00:00
reuk
047448fbce
Warnings: Add missing overrides
2024-01-30 11:37:30 +00:00
Tom Poole
61aa1fc4ab
Bump version number to 7.0.9
2023-11-20 14:03:35 +00:00
attila
c9c2ca0aab
Fix float equality warning in Rectangle::enlargeIfAdjacent()
...
Co-authored-by: Tobias Hienzsch <post@tobias-hienzsch.de>
2023-10-24 18:19:36 +02:00
Tom Poole
45494e34d5
Bump version number to 7.0.8
2023-10-19 09:06:32 +01:00
Tom Poole
6bf9bb9a2e
Add final specifiers in implementation files
2023-10-10 16:12:38 +01:00
Anthony Nicholls
158220ddfa
Formatting: Use nested namespace definitions
2023-10-09 14:49:18 +01:00
Tom Poole
4153d59e39
Formatting
2023-10-02 15:42:20 +01:00
Tom Poole
ff0cb4ad5b
Use NullCheckedInvocation in more places
2023-10-02 13:40:10 +01:00
Tom Poole
7d45d498b9
Removed some superfluous consts from definitions
2023-09-20 16:31:10 +01:00
Tom Poole
9b041f3d74
Add a base clang-tidy configuration
2023-09-18 11:24:19 +01:00
Tom Poole
0dfaa98e86
Rectangle: Add nodiscard to some methods
2023-09-15 16:30:10 +01:00
Tom Poole
82f1fd57a4
Fix some compiler warnings
2023-08-29 12:59:09 +01:00
Tom Poole
b769982bb5
Bump version number to 7.0.7
2023-08-23 09:06:58 +01:00
Tom Poole
3aa5d96e67
approximatelyEqual: Fix some compilation errors
2023-08-22 10:16:52 +01:00