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
Anthony Nicholls
2bb530f636
approximatelyEqual: Add customisable tolerances for floating-point comparisons
2023-08-17 12:47:53 +00:00
reuk
a22e423fc6
CoreGraphics: Refactor for improved consistency
2023-08-09 16:48:01 +01:00
Tom Poole
d5cb08e60e
Bump version number to 7.0.6
2023-08-03 10:58:48 +01:00
reuk
97fa2f0e8a
Convolution: Fix integer conversion in unit tests
2023-07-31 14:50:32 +01:00
Tom Poole
ff835be2ac
Doxygen: Fix some Doxygen issues
2023-07-17 18:24:01 +01:00
reuk
c8c4cdc7d5
EdgeTable: Add offset before truncating to somewhat restore old rounding behaviour
2023-06-08 15:05:43 +01:00
reuk
4f67a18a3f
EdgeTable: Avoid integer truncation when rendering paths with large coordinates
...
Previously, if the PathFlatteningIterator returned a line segment with
very large x or y positions, the result of
roundToInt (iter.y1 * 256.0f)
could be incorrect, if the result was too large to fit in an int.
Using int64_t to store intermediate results, converting to int when
updating the edge table itself produces accurate results for a wider
range of inputs.
2023-06-01 18:49:32 +01:00
reuk
1ad3430e14
ImageCache: Avoid assertion in destructor
2023-05-31 15:15:25 +01:00
reuk
3894fdbe5f
CoreGraphics: Fix issue where AlertWindow borders were not rendered correctly
2023-05-31 15:15:25 +01:00
reuk
8ed3618e12
CoreGraphicsContext: Fix issue where clipping a gradient on a layer-backed view could cause rendering glitches
2023-05-04 18:42:41 +01:00
reuk
b56f386b6b
CoreGraphicsContext: Reduce repetition
2023-05-04 18:42:41 +01:00