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

1354 commits

Author SHA1 Message Date
attila
c61158ed3a Add GlyphArrangementOptions for addFittedText and drawFittedText
The new options can be used to affect line spacing.
2025-05-09 13:39:11 +02:00
attila
787f7a4694 Use ShapedTextOptions::withAdditiveLineSpacing where appropriate
After reviewing the NSAttributedString API it seems justified to have
two different functions for additive and multiplicative line spacing
settings. For NSAttributedString they are setLineSpacing and
setLineHeightMultiple.

Using this function, when appropriate, exercises it lessening the
likelihood of code rot.
2025-05-09 13:39:11 +02:00
Oli
6972c4f0e3 Direct2D: Fix ETW tracing build errors
This makes Direct2DMetrics and current frameId accessible to implementation subclasses.

It also replaces JUCE_WRITE_TRACE_LOG with JUCE_WRITE_TRACE_LOG_VA as intended in original implementation.

Co-authored-by: Matt Gonzalez <matt@echoaudio.com>
2025-04-30 10:50:52 +01:00
reuk
243d3756fc Direct2D: Hide implementation of RectangleListSpriteBatch::fillRectangles 2025-04-24 13:58:24 +01:00
reuk
49948d5dd4 Direct2D: Remove unused declarations 2025-04-24 13:58:24 +01:00
reuk
98d4ddef87 Direct2D: Move MemoryFontFileLoader to DirectX.cpp 2025-04-24 13:58:24 +01:00
reuk
234e75b2be Direct2D: Move MemoryFontFileFileStream to DirectX.cpp 2025-04-24 13:58:24 +01:00
reuk
96683e49a1 Direct2D: Move FontFileEnumerator to DirectX.cpp 2025-04-24 13:58:24 +01:00
reuk
8d29edec92 Direct2D: Move CompositionTree to Direct2DHwndContext.cpp 2025-04-24 13:58:24 +01:00
reuk
1f6c1737eb Direct2D: Remove declaration of makeGradientStopCollection() 2025-04-24 13:58:24 +01:00
reuk
8d33428dcf Direct2D: Move WindowsScopedEvent to Direct2DHwndContext.cpp 2025-04-24 13:58:24 +01:00
reuk
f56c7faf40 Direct2D: Move SwapChain into Direct2DHwndContext.cpp 2025-04-24 13:58:24 +01:00
reuk
43c9f28d59 Direct2D: Move ScopedGeometryWithSink to Direct2DGraphicsContextImpl.cpp 2025-04-24 13:58:24 +01:00
reuk
137d9820b1 Direct2D: Move D2DHelpers to Direct2DGraphicsContext.cpp 2025-04-24 13:58:24 +01:00
reuk
2aed72d0d7 Direct2D: Move paintPrimitive implementation into Direct2DGraphicsContext 2025-04-24 13:58:24 +01:00
reuk
b061d5f5a4 Direct2D: Hide D2D SavedState in .cpp file 2025-04-24 13:58:24 +01:00
reuk
0071f4741c Direct2D: Make protected members of Pimpl private/public as appropriate 2025-04-24 13:58:24 +01:00
reuk
170b463400 Direct2D: Remove unused hwnd data member from D2DGraphicsContext::Pimpl 2025-04-24 13:58:24 +01:00
reuk
93d227b6af Direct2D: Split declaration and definition of Direct2DGraphicsContext::Pimpl 2025-04-24 13:58:24 +01:00
reuk
352f77083d DirectX: Remove unused ScopedMultithread 2025-04-24 13:58:24 +01:00
reuk
87abc7919b DirectX: Split out function definitions into a separate cpp file 2025-04-24 13:58:24 +01:00
Oli
ca3abbb96d Direct2D: Round virtual texture tile position
This fixes the issue reported here: https://forum.juce.com/t/regression-in-drawimage/65084/5
2025-04-24 13:58:24 +01:00
Oli
5d6cd1f2d7 Direct2DGraphicsContext: Fix rendering for rectangles smaller than 1x1
This should also fix https://forum.juce.com/t/bug-d2d-renderer-does-not-draw-purely-horizontal-vertical-paths/65686/3

Co-authored-by: Matt Gonzalez <matt@echoaudio.com>
2025-04-24 13:58:24 +01:00
Oli
1dce4ae0fe Direct2DGraphicsContext: Use path bounds to check for emptiness
Co-authored-by: Matt Gonzalez <matt@echoaudio.com>
2025-04-24 13:58:24 +01:00
Oliver James
16326d13d3 Direct2D: Use the 'focused' window when acquiring metrics
Co-authored-by: Matt Gonzalez <matt@echoaudio.com>
2025-04-24 13:58:23 +01:00
Oli
9374f2c9f7 Graphics: Use preferred temporary image type for transparency layers
Co-authored-by: Matt Gonzalez <matt@echoaudio.com>
2025-04-24 13:58:23 +01:00
Oli
bd26d79b17 Effects: Use preferred temporary image type for DropShadow temporary image
Co-authored-by: Matt Gonzalez <matt@echoaudio.com>
2025-04-24 13:58:23 +01:00
Oli
250abe9cf4 LowLevelGraphicsContext: Add preferred image type for temporary images
Co-authored-by: Matt Gonzalez <matt@echoaudio.com>
2025-04-24 13:58:23 +01:00
Oli
bf940ae42a Direct2D: Do image cloning on GPU when possible
Co-authored-by: Matt Gonzalez <matt@echoaudio.com>
2025-04-24 13:58:23 +01:00
Oli
ae784a941e Direct2D: Implement moveValidatedImageSection
Co-authored-by: Matt Gonzalez <matt@echoaudio.com>
2025-04-24 13:58:23 +01:00
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