diff options
| author | gingerBill <bill@gingerbill.org> | 2025-06-20 09:48:45 +0100 |
|---|---|---|
| committer | gingerBill <bill@gingerbill.org> | 2025-06-20 09:48:45 +0100 |
| commit | 37fffe78d618489fffcbd3b4cd7fd6856218298e (patch) | |
| tree | 832e1af58dbeb9761459d7e7266df3850551a332 /vendor | |
| parent | f055d8e7147dd2761557e77ccaa732eb25f9a1f2 (diff) | |
Use `bit_field`s to describe internal `break_state`
Diffstat (limited to 'vendor')
| -rw-r--r-- | vendor/kb_text_shape/kb_text_shape_types.odin | 46 |
1 files changed, 38 insertions, 8 deletions
diff --git a/vendor/kb_text_shape/kb_text_shape_types.odin b/vendor/kb_text_shape/kb_text_shape_types.odin index bc5ee35e8..8e1f1e3fe 100644 --- a/vendor/kb_text_shape/kb_text_shape_types.odin +++ b/vendor/kb_text_shape/kb_text_shape_types.odin @@ -1819,22 +1819,52 @@ break_state :: struct { BracketCount: u32, Flags: break_state_flags, - FlagState: u32, // u8(break_flags)x4 + FlagState: bit_field u32 { + _0: u32 | 8, // break_flags + _1: u32 | 8, // break_flags + _2: u32 | 8, // break_flags + _3: u32 | 8, // break_flags + }, PositionOffset2: i16, PositionOffset3: i16, - WordBreakHistory: u32, // u8x4 - WordBreaks: u16, // u4x4 - WordUnbreaks: u16, // u4x4 + WordBreakHistory: bit_field u32 { + _0: u32 | 8, + _1: u32 | 8, + _2: u32 | 8, + _3: u32 | 8, + }, + WordBreaks, + WordUnbreaks: bit_field u16 { + _0: u16 | 4, + _1: u16 | 4, + _2: u16 | 4, + _3: u16 | 4, + }, WordBreak2PositionOffset: i16, - LineBreaks: u64, // u16x4 + LineBreaks: bit_field u64 { + _0: u64 | 16, + _1: u64 | 16, + _2: u64 | 16, + _3: u64 | 16, + }, // Instead of staying synchronized with LineBreaks/LineUnbreaks, // this advances every character always. // (This is only needed because ZWJ can create an unbreak while simultaneously being ignored.) - LineUnbreaksAsync: u64, // u16x4 - LineUnbreaks: u64, // u16x4 - LineBreakHistory: u32, // u8(line_break_class)x4 + LineUnbreaksAsync, + LineUnbreaks: bit_field u64 { + _0: u64 | 16, + _1: u64 | 16, + _2: u64 | 16, + _3: u64 | 16, + }, + LineBreakHistory: bit_field u32 { + _0: u32 | 8, // break_flags + _1: u32 | 8, // break_flags + _2: u32 | 8, // break_flags + _3: u32 | 8, // break_flags + }, LineBreak2PositionOffset: i16, LineBreak3PositionOffset: i16, |