font_test_data/
cmap.rs

1//! cmap test data for scenarios not readily produced with ttx
2
3use crate::{be_buffer, bebuffer::BeBuffer};
4
5/// Contains two codepoint ranges, both [6, 64]. Surely you don't duplicate them?
6pub fn repetitive_cmap4() -> BeBuffer {
7    // <https://learn.microsoft.com/en-us/typography/opentype/spec/cmap#format-4-segment-mapping-to-delta-values>
8    be_buffer! {
9      4_u16,                      // uint16	format
10      0_u16,                      // uint16	length, unused
11      0_u16,                      // uint16	language, unused
12      4_u16,                      // uint16	segCountX2, 2 * 2 segments
13      0_u16,                      // uint16	searchRange, unused
14      0_u16,                      // uint16	entrySelector, unused
15      0_u16,                      // uint16	rangeShift, unused
16      // segCount endCode entries
17      64_u16,                    // uint16	endCode[0]
18      64_u16,                    // uint16	endCode[1]
19
20      0_u16,                      // uint16	reservedPad, unused
21
22      // segCount startCode entries
23      6_u16,                      // uint16	startCode[0]
24      6_u16,                      // uint16	startCode[1]
25
26      // segCount idDelta entries
27      0_u16,                      // uint16	idDelta[0]
28      0_u16,                      // uint16	idDelta[1]
29
30      // segCount idRangeOffset entries
31      0_u16,                      // uint16	idRangeOffset[0]
32      0_u16                       // uint16	idRangeOffset[1]
33
34      // no glyphIdArray entries
35    }
36}