Introduce TextOptions by Gillibald · Pull Request #20107 · AvaloniaUI/Avalonia (original) (raw)

src/Avalonia.Base/Media/TextOptions.cs

New struct defining text rendering options with methods for getting/setting options on visuals

src/Avalonia.Base/Media/TextHintingMode.cs

New enum defining text hinting modes (None, Slight, Normal, Full)

src/Avalonia.Base/Media/TextRenderingMode.cs

Enhanced with XML documentation for each enum value

src/Avalonia.Base/Media/RenderOptions.cs

Removed TextRenderingMode property and related methods

src/Avalonia.Base/Visual.cs

Added TextOptions property alongside existing RenderOptions

src/Avalonia.Base/Platform/IDrawingContextImpl.cs

Added PushTextOptions and PopTextOptions methods to interface

src/Skia/Avalonia.Skia/TwoLevelCache.cs

New cache implementation for storing text blobs with eviction support

src/Skia/Avalonia.Skia/GlyphRunImpl.cs

Updated to use TextOptions for text blob caching instead of simple edging array

src/Skia/Avalonia.Skia/DrawingContextImpl.cs

Implemented text options stack and applies hinting/baseline settings

src/Windows/Avalonia.Direct2D1/Media/DrawingContextImpl.cs

Added text options support with separate text antialiasing control

src/Headless/Avalonia.Headless/HeadlessPlatformRenderInterface.cs

Added no-op text options methods for headless rendering

src/Avalonia.Base/Rendering/ImmediateRenderer.cs

Updated to push text options before render options

src/Avalonia.Base/Rendering/Composition/Server/ServerCompositionVisual.cs

Added text options push/pop in rendering pipeline

src/Avalonia.Base/Rendering/Composition/Server/DrawingContextProxy.cs

Added text options proxy commands

tests/Avalonia.Skia.UnitTests/Media/GlyphRunTests.cs

Updated to use new TextOptions API

tests/Avalonia.RenderTests/Media/GlyphRunTests.cs

Migrated from RenderOptions.SetTextRenderingMode to TextOptions.SetTextRenderingMode