reuk
1560f87111
LowLevelGraphicsContext: Replace glyph drawing functions with single drawGlyphs()
2024-04-18 14:16:01 +01:00
reuk
03b1e918fe
LookAndFeel: Make portable typeface metrics the default
2024-04-18 14:16:00 +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
3ae474d12c
Projucer: Update default min/target SDK, NDK, and build tool versions for Android
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
f024e7ab09
iOS: Allow multiple instances of ScopedJuceInitialiser_GUI
...
Previously, the UnitTestRunner example in the DemoRunner would fail on
any tests that included ScopedJuceInitialiser_GUI, as DeletedAtShutdown
objects would be destroyed too early.
2024-04-16 21:07:46 +01:00
reuk
238a99caf8
Android: Allow multiple instances of ScopedJuceInitialiser_GUI
...
Previously, the UnitTestRunner example in the DemoRunner would fail on
any tests that included ScopedJuceInitialiser_GUI, as DeletedAtShutdown
objects would be destroyed too early.
2024-04-16 21:07:45 +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
reuk
fe9fc0c0e6
MouseCursor: Fix argument order in call to dictionaryWithObjectsAndKeys
2024-04-16 21:07:44 +01:00
reuk
6be2db68d6
CharPointer: Tidy up and fix arithmetic operator return types
2024-04-16 17:48:35 +01:00
Anthony Nicholls
cde0593756
String: Add support for char8_t string literals
2024-04-16 17:48:35 +01:00
Anthony Nicholls
e29002e666
iOS: Replace deprecated references to downloadState with state
2024-04-16 17:45:26 +01:00
attila
db3c2c6a52
Javascript: Replace old engine with QuickJS
2024-04-16 17:43:22 +01:00
Anthony Nicholls
3af4adf82d
AudioWorkgroup: Fix typo in documentation
2024-04-16 17:43:22 +01:00
attila
bc3600cde8
Animation: Add juce_animation module
2024-04-16 17:43:21 +01:00
attila
ec92ce82b6
WebBrowserComponent: Add native integration helper Javascript library
2024-04-16 17:43:21 +01:00
attila
5f638157f7
WebBrowserComponent: Improve native integrations
2024-04-16 17:43:21 +01:00
attila
624fed2c7f
Linux: XEmbedComponent: Improve focus transfer handling
2024-04-16 17:43:21 +01:00
attila
c320a42c36
Linux: Make ComponentPeer::getCurrentModifiersRealtime() update shift and ctrl modifiers
2024-04-16 17:43:21 +01:00
attila
3548e51ef6
Android: Fix loading multiple classes from a single bytecode loader
2024-04-16 17:43:21 +01:00
attila
ee14a5ea55
URL: Add getOrigin()
2024-04-16 17:43:21 +01:00
Tom Poole
eb03fbc989
ConsoleApplication: Fix a complier warning
2024-04-16 17:43:21 +01:00
Tom Poole
2fc069b450
Bump version number to 8.0.0
2024-04-16 17:43:20 +01:00
Tom Poole
fd933dfac6
Projucer: Remove the JUCE splash screen and update licensing
2024-04-16 17:43:19 +01:00
Anthony Nicholls
22d4747038
Warnings: Fix JUCE_COMPILER_WARNING macro to expect strings
2024-04-16 11:56:27 +01:00
Tom Poole
94d98a2b10
Update licensing information
2024-04-16 11:39:35 +01:00