sdk-world v2026.11.05
PS2 SDK - world tier (copyleft-allowed, non-essential packages)
Loading...
Searching...
No Matches
ftmmtypes.h
Go to the documentation of this file.
1/****************************************************************************
2 *
3 * ftmmtypes.h
4 *
5 * OpenType Variations type definitions for internal use
6 * with the multi-masters service (specification).
7 *
8 * Copyright (C) 2022-2025 by
9 * David Turner, Robert Wilhelm, Werner Lemberg, George Williams, and
10 * Dominik Röttsches.
11 *
12 * This file is part of the FreeType project, and may only be used,
13 * modified, and distributed under the terms of the FreeType project
14 * license, LICENSE.TXT. By continuing to use, modify, or distribute
15 * this file you indicate that you have read the license and
16 * understand and accept it fully.
17 *
18 */
19
20
25#ifndef FTMMTYPES_H_
26#define FTMMTYPES_H_
27
28FT_BEGIN_HEADER
29
30
31 typedef FT_Int32 FT_ItemVarDelta;
32
33 typedef struct GX_ItemVarDataRec_
34 {
35 FT_UInt itemCount; /* Number of delta sets per item. */
36 FT_UInt regionIdxCount; /* Number of region indices. */
37 FT_UInt* regionIndices; /* Array of `regionCount` indices; */
38 /* these index `varRegionList`. */
39 FT_Byte* deltaSet; /* Array of `itemCount` deltas; */
40 /* use `innerIndex` for this array. */
41 FT_UShort wordDeltaCount; /* Number of the first 32-bit ints */
42 /* or 16-bit ints of `deltaSet` */
43 /* depending on `longWords`. */
44 FT_Bool longWords; /* If true, `deltaSet` is a 32-bit */
45 /* array followed by a 16-bit */
46 /* array, otherwise a 16-bit array */
47 /* followed by an 8-bit array. */
48 } GX_ItemVarDataRec, *GX_ItemVarData;
49
50
51 /* contribution of one axis to a region */
52 typedef struct GX_AxisCoordsRec_
53 {
54 FT_Fixed startCoord;
55 FT_Fixed peakCoord; /* zero means no effect (factor = 1) */
56 FT_Fixed endCoord;
57
58 } GX_AxisCoordsRec, *GX_AxisCoords;
59
60
61 typedef struct GX_VarRegionRec_
62 {
63 GX_AxisCoords axisList; /* array of axisCount records */
64
65 } GX_VarRegionRec, *GX_VarRegion;
66
67
68 /* item variation store */
69 typedef struct GX_ItemVarStoreRec_
70 {
71 FT_UInt dataCount;
72 GX_ItemVarData varData; /* array of dataCount records; */
73 /* use `outerIndex' for this array */
74 FT_UShort axisCount;
75 FT_UInt regionCount; /* total number of regions defined */
76 GX_VarRegion varRegionList;
77
78 } GX_ItemVarStoreRec, *GX_ItemVarStore;
79
80
81 typedef struct GX_DeltaSetIdxMapRec_
82 {
83 FT_ULong mapCount;
84 FT_UInt* outerIndex; /* indices to item var data */
85 FT_UInt* innerIndex; /* indices to delta set */
86
87 } GX_DeltaSetIdxMapRec, *GX_DeltaSetIdxMap;
88
89
90FT_END_HEADER
91
92#endif /* FTMMTYPES_H_ */
93
94
95/* END */