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

1374 commits

Author SHA1 Message Date
Oli
2324e34e1b Graphics: Move Image::moveImageSection into ImagePixelData
Co-authored-by: Matt Gonzalez <matt@echoaudio.com>
2025-04-24 13:58:23 +01:00
reuk
c167c6dfde Direct2D: Move ImagePixelDataNativeExtensions into separate header 2025-04-24 13:58:23 +01:00
Oli
5e5258591f Direct2D: Move Direct2DGraphicsContext::Impl into separate header 2025-04-24 13:58:23 +01:00
reuk
6deb508e96 Direct2D: Move Direct2DFactories to juce_DirectX_windows.h 2025-04-24 13:58:23 +01:00
reuk
18b508343d Direct2D: Move Direct2DResources to juce_DirectX_windows.h 2025-04-24 13:58:23 +01:00
reuk
b5b7dd5696 Direct2D: Move Direct2DHelpers into juce_DirectX_windows.h 2025-04-24 13:58:23 +01:00
Oli
2f46d9eff4 Direct2D: Change juce_FunctionPointerDestructor.h include order 2025-04-24 13:58:23 +01:00
attila
d2d5e9bdd2 TextEditor: Fix setLineSpacing
Applies the previously missed line spacing value of the TextEditor.

The changes in JustifiedText fix calculating the vertical position of
the first line for the case where ShapedTextOptions has the following
settings:

isBaselineAtZero() == false,
getHeight().has_value() == false
getLeading() > 1.0f

This case however is only triggered by the TextEditor, as with all
functions in GlyphArrangement at least one setting is different.
2025-04-23 18:11:26 +02:00
Oli
3b43b7ca13 Direct2D: Reduce DirectX resource thrashing in Direct2D Swapchain 2025-04-22 12:53:46 +01:00
attila
c786e6160c Direct2D: Fix fillAlphaChannelWithCurrentBrush when the source position is non-zero 2025-04-17 10:27:24 +02:00
Tom Poole
99b752a1d2 Bump version number to 8.0.7 2025-04-08 10:51:07 +01:00
attila
9083cd9135 Fix TextEditor crash when Font resolution fails 2025-04-02 15:33:27 +02:00
attila
9c0aeb9e00 ShapedText: Fix potential crash caused by invalid Unicode strings
This change also fixes bad access that could happen with \r\n
line terminators. An incorrectly sized buffer meant that \n was
clobbered by the null terminator.
2025-04-02 15:33:27 +02:00
attila
bdc515e424 ShapedText: Fix crash caused by failing to find a fallback font for all codepoints 2025-04-02 15:33:27 +02:00
reuk
eca83213eb
Direct2D: Fix issue where vertical/horizontal lines were ignored by strokePath 2025-04-02 10:57:09 +01:00
attila
5aab60f4e5 Direct2D: Fix text drawing using gradients 2025-03-28 12:19:11 +01:00
attila
5f5a247f82 TextEditor: Fix centred and right alignment when word wrap is disabled 2025-03-20 21:12:32 +01:00
reuk
ded1590ecb
HarfBuzz: Silence nontrivial-memcall warnings
These warnings are emitted by Clang 20.1
2025-03-19 11:06:17 +00:00
attila
273c7936d3 Direct2D: Fix text drawing using gradients when the screen scaling is 1 2025-03-17 15:32:59 +01:00
attila
432a7e1c9a Fix C++20 compilation 2025-03-14 10:03:11 +01:00
attila
427852836c ShapedText: Break ligatures into multiple iterable placeholder glyphs 2025-03-13 12:16:16 +01:00
attila
bc093fa64c Ranges: ShapedText: Use out params for improving TextEditor performance 2025-03-13 12:16:16 +01:00
attila
a4f73a37af ShapedText: Fix input text range calculation logic during wrapping 2025-03-13 12:16:16 +01:00
attila
bfbdc4844d ShapedTextOptions: Fix uninitialised member variable 2025-03-13 12:16:16 +01:00
attila
50863c144e ShapedTextOptions: Add equality operators 2025-03-13 12:16:16 +01:00
attila
d72df5faa3 ShapedText: Add bidirectional lookup functions relating positions, input indices and glyph indices 2025-03-13 12:16:16 +01:00
attila
6cf697bd6d Ranges: Add equality operators 2025-03-13 12:16:16 +01:00
attila
2842c8ef8e Add detail::Ranges::getRanges() 2025-03-13 12:16:16 +01:00
attila
6c3043f082 Add detail::UnicodeHelpers::getLineBreaks 2025-03-13 12:16:16 +01:00
attila
a07098d479 Add ShapedText::getHeight() 2025-03-13 12:16:16 +01:00
attila
213d3fb56a Add RangedValues::getIntersectionsStartingAtZeroWith 2025-03-13 12:16:16 +01:00
attila
2d24504cd1 Change the return type of RangedValues::getIntersectionsWith
This is to avoid converting the returned value to RangedValues at the
call site.
2025-03-13 12:16:16 +01:00
attila
8dccb38081 Make IntersectingRangedValues independent from the RangedValues type
With this change you can use makeIntersectingRangedValues() not just for
RangedValues objects, but any object that has a begin() and end()
function returning a RangedValuesIterator.
2025-03-13 12:16:16 +01:00
attila
5b04493fb8 Ranges: Make RangedValuesIterator independent from the RangedValues type
This commit also relaxes the requirements imposed on the types for which
RangedValuesIterators can be created.
2025-03-13 12:16:16 +01:00
attila
43608a5208 Ranges: Store more information in Split and Change operations
This allows implementing more sophisticated logic in types wrapping
Ranges and RangedValue objects.
2025-03-13 12:16:16 +01:00
attila
ef840b7472 Use detail::RangedValues<Font> on ShapedText related interfaces
Previously using the FontForRange type was motivated by hiding the
RangedValues type in case we wanted to expose the ShapedText API. This
introduced unnecessary conversions between FontForRange and
RangedValues<Font>.
2025-03-13 12:16:16 +01:00
attila
ad43702e88 Add detail::RangedValues::shift 2025-03-13 12:16:16 +01:00
attila
fab1de34ab Add ShapedText::accessTogetherWith and remove ShapedText::access
Since the original function template has been exposed, we can now use it
directly. Also ShapedText::Detail has been removed, because it wouldn't
work across module boundaries.
2025-03-13 12:16:16 +01:00
attila
1b595311d0 Move ShapedText to the detail namespace and expose it in the headers
This makes it accessible for the new TextEditor implementation in
juce_gui_basics.
2025-03-13 12:16:16 +01:00
attila
e31fb368b6 Unicode TR14: Always return a hard break for line breaking code points
Prior to this commit a soft break would be returned at the end of text,
even if the text was terminated by a newline.
2025-03-13 12:16:16 +01:00
reuk
518240cd61
Zlib: Fix unknown-symbols errors when building with clang, windows, C++20/23 2025-03-03 14:41:32 +00:00
reuk
209c86c627 Zlib: Update JUCE sources to support new zlib version 2025-02-25 12:47:13 +00:00
reuk
9bdf69e499
PathStrokeType: Avoid unnecessarily starting new subpaths 2025-02-11 18:11:12 +00:00
reuk
92c7d73d2d
Direct2D: Fix image artefacts at the edge of alpha-clipped regions
This addresses the same issue that
95d416ab77 was intended to fix:

Drawing a drop shadow on a high-res display on Windows could sometimes
produce thin lines around the edge of the shadow. Using the 'clamp'
rather than the 'wrap' clipping mode seems to help.
2025-02-11 18:11:12 +00:00
reuk
5aa76a7d7e
DropShadow: Revert recent shadow-scale change
Reverts 95d416ab77

The previous change caused the shadow to draw at higher resolution on
high-res displays, which then made the blur more expensive to compute.
2025-02-11 18:11:12 +00:00
reuk
95d416ab77
DropShadow: Draw shadows for paths at correct scale to avoid stretching the blurred bitmap 2025-02-06 18:22:33 +00:00
reuk
09b10428ec
CoreGraphics: Remove CoreImage implementations for desaturation and transparency 2025-02-06 18:22:33 +00:00
reuk
c46bcb677e
CoreGraphics: Remove CoreImage single-channel blur implementation
The CoreImage blur implementation is often significantly slower than
the old software blur in common scenarios such as rendering shadows.
2025-02-06 18:22:33 +00:00
reuk
19edd53842
EdgeTable: Fix issue where edges of paths could be anti-aliased incorrectly at edges of clip regions 2025-02-03 19:16:46 +00:00
reuk
56ea531298
CoreGraphics: Fix bug where subsection images were rendered incorrectly 2025-02-03 13:56:31 +00:00