attila
48c5857034
JavascriptEngine: Fix evaluating an empty array
2024-04-29 13:19:06 +02:00
attila
d9095fccb2
WebBrowserComponent: Fix passing on escaped string sequences to native function completions
2024-04-26 12:23:53 +02:00
attila
660b789415
AU Client: Suppress EnumCastOutOfRange Clang Analyzer warning
2024-04-26 12:23:05 +02:00
attila
39ac568433
Add missing licence header to Javascript files
2024-04-23 16:04:09 +02:00
attila
0d93e15d50
GlyphArrangement: Fix incorrect positioning with Justification::top
2024-04-19 16:55:09 +02:00
attila
e86e7fca9e
WebBrowserComponent: Fix Windows compilation issue
2024-04-18 17:16:57 +02:00
reuk
19061e6d17
Direct2D: Add initial support
2024-04-18 14:16:02 +01:00
reuk
0e6a358c45
VST3 Host: Avoid inadvertent window growth for scaled views
2024-04-18 14:16:02 +01:00
reuk
7e87d3e7a6
RenderingHelpers: Fix transformed linear gradients
...
Previously, the software renderer could render transformed gradients
incorrectly. This could be seen in the backgrounds of the tabs in the
ComponentTransformsDemo when the view was rotated through around 45
degrees.
The new behaviour appears more consistent with the other renderers.
2024-04-18 14:16:02 +01:00
reuk
b1861dc25c
VBlank: Avoid hogging the message queue with repaint messages when repaints take longer than a vblank period
2024-04-18 14:16:02 +01:00
reuk
fae3e2c010
ImageConvolutionKernel: Refactor and fix bugs in single-channel convolution
2024-04-18 14:16:01 +01:00
attila
20afcb5bf3
GlyphArrangement: Use ShapedText
2024-04-18 14:16:01 +01:00
attila
d84bacb3bb
Add ShapedText
...
Co-authored-by: Oliver James <oli@juce.com>
2024-04-18 14:16:01 +01:00
Oliver James
25e1431c47
Add support for various traversal operations on Unicode strings
2024-04-18 14:16:01 +01:00
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
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