sdk-world v2026.11.05
PS2 SDK - world tier (copyleft-allowed, non-essential packages)
Loading...
Searching...
No Matches
ttcmap.h
Go to the documentation of this file.
1/****************************************************************************
2 *
3 * ttcmap.h
4 *
5 * TrueType character mapping table (cmap) support (specification).
6 *
7 * Copyright (C) 2002-2025 by
8 * David Turner, Robert Wilhelm, and Werner Lemberg.
9 *
10 * This file is part of the FreeType project, and may only be used,
11 * modified, and distributed under the terms of the FreeType project
12 * license, LICENSE.TXT. By continuing to use, modify, or distribute
13 * this file you indicate that you have read the license and
14 * understand and accept it fully.
15 *
16 */
17
18
23#ifndef TTCMAP_H_
24#define TTCMAP_H_
25
26
30
31FT_BEGIN_HEADER
32
33
34#define TT_CMAP_FLAG_UNSORTED 1
35#define TT_CMAP_FLAG_OVERLAPPING 2
36
37 typedef struct TT_CMapRec_
38 {
39 FT_CMapRec cmap;
40 FT_Byte* data; /* pointer to in-memory cmap table */
41 FT_Int flags; /* for format 4 only */
42
43 } TT_CMapRec, *TT_CMap;
44
45 typedef const struct TT_CMap_ClassRec_* TT_CMap_Class;
46
47
48 typedef FT_Error
49 (*TT_CMap_ValidateFunc)( FT_Byte* data,
50 FT_Validator valid );
51
52 typedef struct TT_CMap_ClassRec_
53 {
54 FT_CMap_ClassRec clazz;
55 FT_UInt format;
56 TT_CMap_ValidateFunc validate;
57 TT_CMap_Info_GetFunc get_cmap_info;
58
59 } TT_CMap_ClassRec;
60
61
62#define FT_DEFINE_TT_CMAP( class_, \
63 size_, \
64 init_, \
65 done_, \
66 char_index_, \
67 char_next_, \
68 char_var_index_, \
69 char_var_default_, \
70 variant_list_, \
71 charvariant_list_, \
72 variantchar_list_, \
73 format_, \
74 validate_, \
75 get_cmap_info_ ) \
76 FT_CALLBACK_TABLE_DEF \
77 const TT_CMap_ClassRec class_ = \
78 { \
79 { size_, \
80 init_, \
81 done_, \
82 char_index_, \
83 char_next_, \
84 char_var_index_, \
85 char_var_default_, \
86 variant_list_, \
87 charvariant_list_, \
88 variantchar_list_ \
89 }, \
90 \
91 format_, \
92 validate_, \
93 get_cmap_info_ \
94 };
95
96
97#undef TTCMAPCITEM
98#define TTCMAPCITEM( a ) FT_CALLBACK_TABLE const TT_CMap_ClassRec a;
99#include "ttcmapc.h"
100
101
102 typedef struct TT_ValidatorRec_
103 {
104 FT_ValidatorRec validator;
105 FT_UInt num_glyphs;
106
107 } TT_ValidatorRec, *TT_Validator;
108
109
110#define TT_VALIDATOR( x ) ( (TT_Validator)( x ) )
111#define TT_VALID_GLYPH_COUNT( x ) TT_VALIDATOR( x )->num_glyphs
112
113
114 FT_CALLBACK_TABLE const TT_CMap_ClassRec tt_cmap_unicode_class_rec;
115
116 FT_LOCAL( FT_Error )
117 tt_face_build_cmaps( TT_Face face );
118
119 /* used in tt-cmaps service */
120 FT_LOCAL( FT_Error )
121 tt_get_cmap_info( FT_CharMap charmap,
122 TT_CMapInfo *cmap_info );
123
124
125FT_END_HEADER
126
127#endif /* TTCMAP_H_ */
128
129
130/* END */