|
|
|
@ -18,7 +18,7 @@ namespace Avalonia.Media |
|
|
|
private double _fontRenderingEmSize; |
|
|
|
private Size? _size; |
|
|
|
private int _biDiLevel; |
|
|
|
private Point _baselineOrigin; |
|
|
|
private Point? _baselineOrigin; |
|
|
|
|
|
|
|
private ReadOnlySlice<ushort> _glyphIndices; |
|
|
|
private ReadOnlySlice<double> _glyphAdvances; |
|
|
|
@ -97,7 +97,9 @@ namespace Avalonia.Media |
|
|
|
{ |
|
|
|
get |
|
|
|
{ |
|
|
|
return _baselineOrigin; |
|
|
|
_baselineOrigin ??= CalculateBaselineOrigin(); |
|
|
|
|
|
|
|
return _baselineOrigin.Value; |
|
|
|
} |
|
|
|
set => Set(ref _baselineOrigin, value); |
|
|
|
} |
|
|
|
@ -538,6 +540,15 @@ namespace Avalonia.Media |
|
|
|
return GlyphAdvances[index]; |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// Calculates the default baseline origin of the <see cref="GlyphRun"/>.
|
|
|
|
/// </summary>
|
|
|
|
/// <returns>The baseline origin.</returns>
|
|
|
|
private Point CalculateBaselineOrigin() |
|
|
|
{ |
|
|
|
return new Point(0, -GlyphTypeface.Ascent * Scale); |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// Calculates the size of the <see cref="GlyphRun"/>.
|
|
|
|
/// </summary>
|
|
|
|
|