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,