blob: 8afb7392a10543c4cb5b5e0ca631d50336622a96 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
// Copyright (c) 2018-2022 Jean-Philippe Bruyère <jp_bruyere@hotmail.com>
//
// This code is licensed under the MIT license (MIT) (http://opensource.org/licenses/MIT)
using System;
using System.Runtime.InteropServices;
namespace Crow.VkvgBackend
{
[StructLayout (LayoutKind.Sequential)]
internal struct TextExtents : IEquatable<TextExtents>
{
float xBearing;
float yBearing;
float width;
float height;
float xAdvance;
float yAdvance;
public float XBearing {
get => xBearing;
set { xBearing = value; }
}
public float YBearing {
get => yBearing;
set { yBearing = value; }
}
public float Width {
get => width;
set { width = value; }
}
public float Height {
get => height;
set { height = value; }
}
public float XAdvance {
get => xAdvance;
set { xAdvance = value; }
}
public float YAdvance {
get => yAdvance;
set { yAdvance = value; }
}
public override int GetHashCode () =>
HashCode.Combine (xBearing, yBearing, width, height, xAdvance, yAdvance);
public override bool Equals (object obj) => obj is TextExtents te ? Equals (te) : false;
public bool Equals(TextExtents other) =>
xBearing == other.xBearing && yBearing == other.yBearing && width == other.width && height == other.height &&
xAdvance == other.xAdvance && yAdvance == other.yAdvance;
public static bool operator == (TextExtents extents, TextExtents other) => extents.Equals (other);
public static bool operator != (TextExtents extents, TextExtents other )=> !extents.Equals (other);
}
}
|