1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-02-06 04:00:08 +00:00
Commit graph

1000 commits

Author SHA1 Message Date
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