1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-10 23:44:24 +00:00
Commit graph

9533 commits

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