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

14205 commits

Author SHA1 Message Date
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
bb0ca20167
Juceaide: Fix warning about missing returns 2024-04-17 14:41:00 +01:00
reuk
f491f126b7
Add Harfbuzz dependency 2024-04-17 14:41:00 +01:00
reuk
9508c30f12
GraphicsDemo: Fix typo 2024-04-16 21:07:46 +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
Anthony Nicholls
4274b835f6 Animation: Add animation demos 2024-04-16 17:43:22 +01:00
attila
bc3600cde8 Animation: Add juce_animation module 2024-04-16 17:43:21 +01:00
attila
bc6295d7b5 WebViewPluginDemo: Add demo of WebBrowserComponent with a React GUI 2024-04-16 17:43:21 +01:00
attila
ee0aac2c75 WebViewPluginDemo: Add empty React GUI project
This commit contains an unmodified React app template. The interesting
bit is the following commit that shows how to modify this template to
interoperate with the JUCE framework.
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
e1b3836f42 juceaide: Add basic test 2024-04-16 17:43:21 +01:00
Tom Poole
110e23785c Update the minimum supported compilers and deployment targets 2024-04-16 17:43:20 +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