jassub 1.7.13 → 1.7.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +4 -2
- package/dist/js/jassub-worker-modern.js +0 -128
- package/dist/js/jassub-worker-modern.wasm +0 -0
- package/dist/js/jassub-worker.js +0 -128
- package/dist/js/jassub-worker.wasm +0 -0
- package/dist/js/jassub-worker.wasm.js +0 -84
- package/dist/js/jassub.js +0 -832
- package/dist/libraries/bin/brotli.js +0 -1
- package/dist/libraries/include/ass/ass.h +0 -812
- package/dist/libraries/include/ass/ass_types.h +0 -292
- package/dist/libraries/include/brotli/decode.h +0 -344
- package/dist/libraries/include/brotli/encode.h +0 -448
- package/dist/libraries/include/brotli/port.h +0 -288
- package/dist/libraries/include/brotli/types.h +0 -83
- package/dist/libraries/include/expat.h +0 -1064
- package/dist/libraries/include/expat_config.h +0 -115
- package/dist/libraries/include/expat_external.h +0 -165
- package/dist/libraries/include/fontconfig/fcfreetype.h +0 -59
- package/dist/libraries/include/fontconfig/fcprivate.h +0 -134
- package/dist/libraries/include/fontconfig/fontconfig.h +0 -1154
- package/dist/libraries/include/freetype2/freetype/config/ftconfig.h +0 -63
- package/dist/libraries/include/freetype2/freetype/config/ftheader.h +0 -824
- package/dist/libraries/include/freetype2/freetype/config/ftmodule.h +0 -20
- package/dist/libraries/include/freetype2/freetype/config/ftoption.h +0 -1011
- package/dist/libraries/include/freetype2/freetype/config/ftstdlib.h +0 -175
- package/dist/libraries/include/freetype2/freetype/config/integer-types.h +0 -245
- package/dist/libraries/include/freetype2/freetype/config/mac-support.h +0 -49
- package/dist/libraries/include/freetype2/freetype/config/public-macros.h +0 -120
- package/dist/libraries/include/freetype2/freetype/freetype.h +0 -4833
- package/dist/libraries/include/freetype2/freetype/ftadvanc.h +0 -188
- package/dist/libraries/include/freetype2/freetype/ftbbox.h +0 -101
- package/dist/libraries/include/freetype2/freetype/ftbdf.h +0 -212
- package/dist/libraries/include/freetype2/freetype/ftbitmap.h +0 -329
- package/dist/libraries/include/freetype2/freetype/ftbzip2.h +0 -102
- package/dist/libraries/include/freetype2/freetype/ftcache.h +0 -1087
- package/dist/libraries/include/freetype2/freetype/ftchapters.h +0 -147
- package/dist/libraries/include/freetype2/freetype/ftcid.h +0 -167
- package/dist/libraries/include/freetype2/freetype/ftcolor.h +0 -1609
- package/dist/libraries/include/freetype2/freetype/ftdriver.h +0 -1193
- package/dist/libraries/include/freetype2/freetype/fterrdef.h +0 -279
- package/dist/libraries/include/freetype2/freetype/fterrors.h +0 -296
- package/dist/libraries/include/freetype2/freetype/ftfntfmt.h +0 -93
- package/dist/libraries/include/freetype2/freetype/ftgasp.h +0 -143
- package/dist/libraries/include/freetype2/freetype/ftglyph.h +0 -664
- package/dist/libraries/include/freetype2/freetype/ftgxval.h +0 -354
- package/dist/libraries/include/freetype2/freetype/ftgzip.h +0 -151
- package/dist/libraries/include/freetype2/freetype/ftimage.h +0 -1276
- package/dist/libraries/include/freetype2/freetype/ftincrem.h +0 -348
- package/dist/libraries/include/freetype2/freetype/ftlcdfil.h +0 -323
- package/dist/libraries/include/freetype2/freetype/ftlist.h +0 -296
- package/dist/libraries/include/freetype2/freetype/ftlogging.h +0 -184
- package/dist/libraries/include/freetype2/freetype/ftlzw.h +0 -100
- package/dist/libraries/include/freetype2/freetype/ftmac.h +0 -289
- package/dist/libraries/include/freetype2/freetype/ftmm.h +0 -752
- package/dist/libraries/include/freetype2/freetype/ftmodapi.h +0 -806
- package/dist/libraries/include/freetype2/freetype/ftmoderr.h +0 -204
- package/dist/libraries/include/freetype2/freetype/ftotval.h +0 -206
- package/dist/libraries/include/freetype2/freetype/ftoutln.h +0 -586
- package/dist/libraries/include/freetype2/freetype/ftparams.h +0 -203
- package/dist/libraries/include/freetype2/freetype/ftpfr.h +0 -179
- package/dist/libraries/include/freetype2/freetype/ftrender.h +0 -244
- package/dist/libraries/include/freetype2/freetype/ftsizes.h +0 -159
- package/dist/libraries/include/freetype2/freetype/ftsnames.h +0 -272
- package/dist/libraries/include/freetype2/freetype/ftstroke.h +0 -773
- package/dist/libraries/include/freetype2/freetype/ftsynth.h +0 -83
- package/dist/libraries/include/freetype2/freetype/ftsystem.h +0 -352
- package/dist/libraries/include/freetype2/freetype/fttrigon.h +0 -350
- package/dist/libraries/include/freetype2/freetype/fttypes.h +0 -615
- package/dist/libraries/include/freetype2/freetype/ftwinfnt.h +0 -276
- package/dist/libraries/include/freetype2/freetype/t1tables.h +0 -773
- package/dist/libraries/include/freetype2/freetype/ttnameid.h +0 -1235
- package/dist/libraries/include/freetype2/freetype/tttables.h +0 -855
- package/dist/libraries/include/freetype2/freetype/tttags.h +0 -123
- package/dist/libraries/include/freetype2/ft2build.h +0 -42
- package/dist/libraries/include/fribidi/fribidi-arabic.h +0 -81
- package/dist/libraries/include/fribidi/fribidi-begindecls.h +0 -3
- package/dist/libraries/include/fribidi/fribidi-bidi-types-list.h +0 -96
- package/dist/libraries/include/fribidi/fribidi-bidi-types.h +0 -405
- package/dist/libraries/include/fribidi/fribidi-bidi.h +0 -142
- package/dist/libraries/include/fribidi/fribidi-brackets.h +0 -89
- package/dist/libraries/include/fribidi/fribidi-char-sets-list.h +0 -54
- package/dist/libraries/include/fribidi/fribidi-char-sets.h +0 -106
- package/dist/libraries/include/fribidi/fribidi-common.h +0 -158
- package/dist/libraries/include/fribidi/fribidi-config.h +0 -23
- package/dist/libraries/include/fribidi/fribidi-deprecated.h +0 -175
- package/dist/libraries/include/fribidi/fribidi-enddecls.h +0 -3
- package/dist/libraries/include/fribidi/fribidi-flags.h +0 -72
- package/dist/libraries/include/fribidi/fribidi-joining-types-list.h +0 -44
- package/dist/libraries/include/fribidi/fribidi-joining-types.h +0 -249
- package/dist/libraries/include/fribidi/fribidi-joining.h +0 -74
- package/dist/libraries/include/fribidi/fribidi-mirroring.h +0 -86
- package/dist/libraries/include/fribidi/fribidi-shape.h +0 -71
- package/dist/libraries/include/fribidi/fribidi-types.h +0 -79
- package/dist/libraries/include/fribidi/fribidi-unicode-version.h +0 -10
- package/dist/libraries/include/fribidi/fribidi-unicode.h +0 -105
- package/dist/libraries/include/fribidi/fribidi.h +0 -129
- package/dist/libraries/include/harfbuzz/hb-aat-layout.h +0 -795
- package/dist/libraries/include/harfbuzz/hb-aat.h +0 -38
- package/dist/libraries/include/harfbuzz/hb-blob.h +0 -160
- package/dist/libraries/include/harfbuzz/hb-buffer.h +0 -799
- package/dist/libraries/include/harfbuzz/hb-common.h +0 -902
- package/dist/libraries/include/harfbuzz/hb-cplusplus.hh +0 -221
- package/dist/libraries/include/harfbuzz/hb-deprecated.h +0 -251
- package/dist/libraries/include/harfbuzz/hb-draw.h +0 -325
- package/dist/libraries/include/harfbuzz/hb-face.h +0 -181
- package/dist/libraries/include/harfbuzz/hb-font.h +0 -1108
- package/dist/libraries/include/harfbuzz/hb-ft.h +0 -145
- package/dist/libraries/include/harfbuzz/hb-map.h +0 -124
- package/dist/libraries/include/harfbuzz/hb-ot-color.h +0 -146
- package/dist/libraries/include/harfbuzz/hb-ot-deprecated.h +0 -141
- package/dist/libraries/include/harfbuzz/hb-ot-font.h +0 -45
- package/dist/libraries/include/harfbuzz/hb-ot-layout.h +0 -503
- package/dist/libraries/include/harfbuzz/hb-ot-math.h +0 -333
- package/dist/libraries/include/harfbuzz/hb-ot-meta.h +0 -72
- package/dist/libraries/include/harfbuzz/hb-ot-metrics.h +0 -129
- package/dist/libraries/include/harfbuzz/hb-ot-name.h +0 -158
- package/dist/libraries/include/harfbuzz/hb-ot-shape.h +0 -53
- package/dist/libraries/include/harfbuzz/hb-ot-var.h +0 -191
- package/dist/libraries/include/harfbuzz/hb-ot.h +0 -49
- package/dist/libraries/include/harfbuzz/hb-set.h +0 -200
- package/dist/libraries/include/harfbuzz/hb-shape-plan.h +0 -122
- package/dist/libraries/include/harfbuzz/hb-shape.h +0 -62
- package/dist/libraries/include/harfbuzz/hb-style.h +0 -81
- package/dist/libraries/include/harfbuzz/hb-subset-repacker.h +0 -81
- package/dist/libraries/include/harfbuzz/hb-subset.h +0 -234
- package/dist/libraries/include/harfbuzz/hb-unicode.h +0 -643
- package/dist/libraries/include/harfbuzz/hb-version.h +0 -95
- package/dist/libraries/include/harfbuzz/hb.h +0 -50
- package/dist/libraries/lib/cmake/expat-2.4.7/expat-config-version.cmake +0 -70
- package/dist/libraries/lib/cmake/expat-2.4.7/expat-config.cmake +0 -99
- package/dist/libraries/lib/cmake/expat-2.4.7/expat-noconfig.cmake +0 -19
- package/dist/libraries/lib/cmake/expat-2.4.7/expat.cmake +0 -99
- package/dist/libraries/lib/libass.a +0 -0
- package/dist/libraries/lib/libass.la +0 -41
- package/dist/libraries/lib/libbrotlicommon.a +0 -0
- package/dist/libraries/lib/libbrotlidec.a +0 -0
- package/dist/libraries/lib/libbrotlienc.a +0 -0
- package/dist/libraries/lib/libexpat.a +0 -0
- package/dist/libraries/lib/libfontconfig.a +0 -0
- package/dist/libraries/lib/libfontconfig.la +0 -41
- package/dist/libraries/lib/libfreetype.a +0 -0
- package/dist/libraries/lib/libfreetype.la +0 -41
- package/dist/libraries/lib/libfribidi.a +0 -0
- package/dist/libraries/lib/libfribidi.la +0 -41
- package/dist/libraries/lib/libharfbuzz-subset.a +0 -0
- package/dist/libraries/lib/libharfbuzz-subset.la +0 -41
- package/dist/libraries/lib/libharfbuzz.a +0 -0
- package/dist/libraries/lib/libharfbuzz.la +0 -41
- package/dist/libraries/lib/pkgconfig/expat.pc +0 -11
- package/dist/libraries/lib/pkgconfig/fontconfig.pc +0 -18
- package/dist/libraries/lib/pkgconfig/freetype2.pc +0 -14
- package/dist/libraries/lib/pkgconfig/fribidi.pc +0 -13
- package/dist/libraries/lib/pkgconfig/harfbuzz-subset.pc +0 -12
- package/dist/libraries/lib/pkgconfig/harfbuzz.pc +0 -13
- package/dist/libraries/lib/pkgconfig/libass.pc +0 -13
- package/dist/libraries/lib/pkgconfig/libbrotlicommon.pc +0 -11
- package/dist/libraries/lib/pkgconfig/libbrotlidec.pc +0 -12
- package/dist/libraries/lib/pkgconfig/libbrotlienc.pc +0 -12
- package/dist/libraries/share/aclocal/freetype2.m4 +0 -194
- package/dist/libraries/share/doc/expat/AUTHORS +0 -10
- package/dist/libraries/share/doc/expat/changelog +0 -1161
- package/dist/license/all +0 -951
- package/dist/license/all.tmp +0 -307
- package/dist/license/brotli +0 -12
- package/dist/license/expat +0 -71
- package/dist/license/fontconfig +0 -46
- package/dist/license/freetype +0 -92
- package/dist/license/fribidi +0 -15
- package/dist/license/harfbuzz +0 -32
- package/dist/license/jassub +0 -0
- package/dist/license/libass +0 -28
|
@@ -1,348 +0,0 @@
|
|
|
1
|
-
/****************************************************************************
|
|
2
|
-
*
|
|
3
|
-
* ftincrem.h
|
|
4
|
-
*
|
|
5
|
-
* FreeType incremental loading (specification).
|
|
6
|
-
*
|
|
7
|
-
* Copyright (C) 2002-2021 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
|
-
|
|
19
|
-
#ifndef FTINCREM_H_
|
|
20
|
-
#define FTINCREM_H_
|
|
21
|
-
|
|
22
|
-
#include <freetype/freetype.h>
|
|
23
|
-
#include <freetype/ftparams.h>
|
|
24
|
-
|
|
25
|
-
#ifdef FREETYPE_H
|
|
26
|
-
#error "freetype.h of FreeType 1 has been loaded!"
|
|
27
|
-
#error "Please fix the directory search order for header files"
|
|
28
|
-
#error "so that freetype.h of FreeType 2 is found first."
|
|
29
|
-
#endif
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
FT_BEGIN_HEADER
|
|
33
|
-
|
|
34
|
-
/**************************************************************************
|
|
35
|
-
*
|
|
36
|
-
* @section:
|
|
37
|
-
* incremental
|
|
38
|
-
*
|
|
39
|
-
* @title:
|
|
40
|
-
* Incremental Loading
|
|
41
|
-
*
|
|
42
|
-
* @abstract:
|
|
43
|
-
* Custom Glyph Loading.
|
|
44
|
-
*
|
|
45
|
-
* @description:
|
|
46
|
-
* This section contains various functions used to perform so-called
|
|
47
|
-
* 'incremental' glyph loading. This is a mode where all glyphs loaded
|
|
48
|
-
* from a given @FT_Face are provided by the client application.
|
|
49
|
-
*
|
|
50
|
-
* Apart from that, all other tables are loaded normally from the font
|
|
51
|
-
* file. This mode is useful when FreeType is used within another
|
|
52
|
-
* engine, e.g., a PostScript Imaging Processor.
|
|
53
|
-
*
|
|
54
|
-
* To enable this mode, you must use @FT_Open_Face, passing an
|
|
55
|
-
* @FT_Parameter with the @FT_PARAM_TAG_INCREMENTAL tag and an
|
|
56
|
-
* @FT_Incremental_Interface value. See the comments for
|
|
57
|
-
* @FT_Incremental_InterfaceRec for an example.
|
|
58
|
-
*
|
|
59
|
-
*/
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
/**************************************************************************
|
|
63
|
-
*
|
|
64
|
-
* @type:
|
|
65
|
-
* FT_Incremental
|
|
66
|
-
*
|
|
67
|
-
* @description:
|
|
68
|
-
* An opaque type describing a user-provided object used to implement
|
|
69
|
-
* 'incremental' glyph loading within FreeType. This is used to support
|
|
70
|
-
* embedded fonts in certain environments (e.g., PostScript
|
|
71
|
-
* interpreters), where the glyph data isn't in the font file, or must be
|
|
72
|
-
* overridden by different values.
|
|
73
|
-
*
|
|
74
|
-
* @note:
|
|
75
|
-
* It is up to client applications to create and implement
|
|
76
|
-
* @FT_Incremental objects, as long as they provide implementations for
|
|
77
|
-
* the methods @FT_Incremental_GetGlyphDataFunc,
|
|
78
|
-
* @FT_Incremental_FreeGlyphDataFunc and
|
|
79
|
-
* @FT_Incremental_GetGlyphMetricsFunc.
|
|
80
|
-
*
|
|
81
|
-
* See the description of @FT_Incremental_InterfaceRec to understand how
|
|
82
|
-
* to use incremental objects with FreeType.
|
|
83
|
-
*
|
|
84
|
-
*/
|
|
85
|
-
typedef struct FT_IncrementalRec_* FT_Incremental;
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
/**************************************************************************
|
|
89
|
-
*
|
|
90
|
-
* @struct:
|
|
91
|
-
* FT_Incremental_MetricsRec
|
|
92
|
-
*
|
|
93
|
-
* @description:
|
|
94
|
-
* A small structure used to contain the basic glyph metrics returned by
|
|
95
|
-
* the @FT_Incremental_GetGlyphMetricsFunc method.
|
|
96
|
-
*
|
|
97
|
-
* @fields:
|
|
98
|
-
* bearing_x ::
|
|
99
|
-
* Left bearing, in font units.
|
|
100
|
-
*
|
|
101
|
-
* bearing_y ::
|
|
102
|
-
* Top bearing, in font units.
|
|
103
|
-
*
|
|
104
|
-
* advance ::
|
|
105
|
-
* Horizontal component of glyph advance, in font units.
|
|
106
|
-
*
|
|
107
|
-
* advance_v ::
|
|
108
|
-
* Vertical component of glyph advance, in font units.
|
|
109
|
-
*
|
|
110
|
-
* @note:
|
|
111
|
-
* These correspond to horizontal or vertical metrics depending on the
|
|
112
|
-
* value of the `vertical` argument to the function
|
|
113
|
-
* @FT_Incremental_GetGlyphMetricsFunc.
|
|
114
|
-
*
|
|
115
|
-
*/
|
|
116
|
-
typedef struct FT_Incremental_MetricsRec_
|
|
117
|
-
{
|
|
118
|
-
FT_Long bearing_x;
|
|
119
|
-
FT_Long bearing_y;
|
|
120
|
-
FT_Long advance;
|
|
121
|
-
FT_Long advance_v; /* since 2.3.12 */
|
|
122
|
-
|
|
123
|
-
} FT_Incremental_MetricsRec;
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
/**************************************************************************
|
|
127
|
-
*
|
|
128
|
-
* @struct:
|
|
129
|
-
* FT_Incremental_Metrics
|
|
130
|
-
*
|
|
131
|
-
* @description:
|
|
132
|
-
* A handle to an @FT_Incremental_MetricsRec structure.
|
|
133
|
-
*
|
|
134
|
-
*/
|
|
135
|
-
typedef struct FT_Incremental_MetricsRec_* FT_Incremental_Metrics;
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
/**************************************************************************
|
|
139
|
-
*
|
|
140
|
-
* @type:
|
|
141
|
-
* FT_Incremental_GetGlyphDataFunc
|
|
142
|
-
*
|
|
143
|
-
* @description:
|
|
144
|
-
* A function called by FreeType to access a given glyph's data bytes
|
|
145
|
-
* during @FT_Load_Glyph or @FT_Load_Char if incremental loading is
|
|
146
|
-
* enabled.
|
|
147
|
-
*
|
|
148
|
-
* Note that the format of the glyph's data bytes depends on the font
|
|
149
|
-
* file format. For TrueType, it must correspond to the raw bytes within
|
|
150
|
-
* the 'glyf' table. For PostScript formats, it must correspond to the
|
|
151
|
-
* **unencrypted** charstring bytes, without any `lenIV` header. It is
|
|
152
|
-
* undefined for any other format.
|
|
153
|
-
*
|
|
154
|
-
* @input:
|
|
155
|
-
* incremental ::
|
|
156
|
-
* Handle to an opaque @FT_Incremental handle provided by the client
|
|
157
|
-
* application.
|
|
158
|
-
*
|
|
159
|
-
* glyph_index ::
|
|
160
|
-
* Index of relevant glyph.
|
|
161
|
-
*
|
|
162
|
-
* @output:
|
|
163
|
-
* adata ::
|
|
164
|
-
* A structure describing the returned glyph data bytes (which will be
|
|
165
|
-
* accessed as a read-only byte block).
|
|
166
|
-
*
|
|
167
|
-
* @return:
|
|
168
|
-
* FreeType error code. 0~means success.
|
|
169
|
-
*
|
|
170
|
-
* @note:
|
|
171
|
-
* If this function returns successfully the method
|
|
172
|
-
* @FT_Incremental_FreeGlyphDataFunc will be called later to release the
|
|
173
|
-
* data bytes.
|
|
174
|
-
*
|
|
175
|
-
* Nested calls to @FT_Incremental_GetGlyphDataFunc can happen for
|
|
176
|
-
* compound glyphs.
|
|
177
|
-
*
|
|
178
|
-
*/
|
|
179
|
-
typedef FT_Error
|
|
180
|
-
(*FT_Incremental_GetGlyphDataFunc)( FT_Incremental incremental,
|
|
181
|
-
FT_UInt glyph_index,
|
|
182
|
-
FT_Data* adata );
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
/**************************************************************************
|
|
186
|
-
*
|
|
187
|
-
* @type:
|
|
188
|
-
* FT_Incremental_FreeGlyphDataFunc
|
|
189
|
-
*
|
|
190
|
-
* @description:
|
|
191
|
-
* A function used to release the glyph data bytes returned by a
|
|
192
|
-
* successful call to @FT_Incremental_GetGlyphDataFunc.
|
|
193
|
-
*
|
|
194
|
-
* @input:
|
|
195
|
-
* incremental ::
|
|
196
|
-
* A handle to an opaque @FT_Incremental handle provided by the client
|
|
197
|
-
* application.
|
|
198
|
-
*
|
|
199
|
-
* data ::
|
|
200
|
-
* A structure describing the glyph data bytes (which will be accessed
|
|
201
|
-
* as a read-only byte block).
|
|
202
|
-
*
|
|
203
|
-
*/
|
|
204
|
-
typedef void
|
|
205
|
-
(*FT_Incremental_FreeGlyphDataFunc)( FT_Incremental incremental,
|
|
206
|
-
FT_Data* data );
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
/**************************************************************************
|
|
210
|
-
*
|
|
211
|
-
* @type:
|
|
212
|
-
* FT_Incremental_GetGlyphMetricsFunc
|
|
213
|
-
*
|
|
214
|
-
* @description:
|
|
215
|
-
* A function used to retrieve the basic metrics of a given glyph index
|
|
216
|
-
* before accessing its data. This allows for handling font types such
|
|
217
|
-
* as PCL~XL Format~1, Class~2 downloaded TrueType fonts, where the glyph
|
|
218
|
-
* metrics (`hmtx` and `vmtx` tables) are permitted to be omitted from
|
|
219
|
-
* the font, and the relevant metrics included in the header of the glyph
|
|
220
|
-
* outline data. Importantly, this is not intended to allow custom glyph
|
|
221
|
-
* metrics (for example, Postscript Metrics dictionaries), because that
|
|
222
|
-
* conflicts with the requirements of outline hinting. Such custom
|
|
223
|
-
* metrics must be handled separately, by the calling application.
|
|
224
|
-
*
|
|
225
|
-
* @input:
|
|
226
|
-
* incremental ::
|
|
227
|
-
* A handle to an opaque @FT_Incremental handle provided by the client
|
|
228
|
-
* application.
|
|
229
|
-
*
|
|
230
|
-
* glyph_index ::
|
|
231
|
-
* Index of relevant glyph.
|
|
232
|
-
*
|
|
233
|
-
* vertical ::
|
|
234
|
-
* If true, return vertical metrics.
|
|
235
|
-
*
|
|
236
|
-
* ametrics ::
|
|
237
|
-
* This parameter is used for both input and output. The original
|
|
238
|
-
* glyph metrics, if any, in font units. If metrics are not available
|
|
239
|
-
* all the values must be set to zero.
|
|
240
|
-
*
|
|
241
|
-
* @output:
|
|
242
|
-
* ametrics ::
|
|
243
|
-
* The glyph metrics in font units.
|
|
244
|
-
*
|
|
245
|
-
*/
|
|
246
|
-
typedef FT_Error
|
|
247
|
-
(*FT_Incremental_GetGlyphMetricsFunc)
|
|
248
|
-
( FT_Incremental incremental,
|
|
249
|
-
FT_UInt glyph_index,
|
|
250
|
-
FT_Bool vertical,
|
|
251
|
-
FT_Incremental_MetricsRec *ametrics );
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
/**************************************************************************
|
|
255
|
-
*
|
|
256
|
-
* @struct:
|
|
257
|
-
* FT_Incremental_FuncsRec
|
|
258
|
-
*
|
|
259
|
-
* @description:
|
|
260
|
-
* A table of functions for accessing fonts that load data incrementally.
|
|
261
|
-
* Used in @FT_Incremental_InterfaceRec.
|
|
262
|
-
*
|
|
263
|
-
* @fields:
|
|
264
|
-
* get_glyph_data ::
|
|
265
|
-
* The function to get glyph data. Must not be null.
|
|
266
|
-
*
|
|
267
|
-
* free_glyph_data ::
|
|
268
|
-
* The function to release glyph data. Must not be null.
|
|
269
|
-
*
|
|
270
|
-
* get_glyph_metrics ::
|
|
271
|
-
* The function to get glyph metrics. May be null if the font does not
|
|
272
|
-
* require it.
|
|
273
|
-
*
|
|
274
|
-
*/
|
|
275
|
-
typedef struct FT_Incremental_FuncsRec_
|
|
276
|
-
{
|
|
277
|
-
FT_Incremental_GetGlyphDataFunc get_glyph_data;
|
|
278
|
-
FT_Incremental_FreeGlyphDataFunc free_glyph_data;
|
|
279
|
-
FT_Incremental_GetGlyphMetricsFunc get_glyph_metrics;
|
|
280
|
-
|
|
281
|
-
} FT_Incremental_FuncsRec;
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
/**************************************************************************
|
|
285
|
-
*
|
|
286
|
-
* @struct:
|
|
287
|
-
* FT_Incremental_InterfaceRec
|
|
288
|
-
*
|
|
289
|
-
* @description:
|
|
290
|
-
* A structure to be used with @FT_Open_Face to indicate that the user
|
|
291
|
-
* wants to support incremental glyph loading. You should use it with
|
|
292
|
-
* @FT_PARAM_TAG_INCREMENTAL as in the following example:
|
|
293
|
-
*
|
|
294
|
-
* ```
|
|
295
|
-
* FT_Incremental_InterfaceRec inc_int;
|
|
296
|
-
* FT_Parameter parameter;
|
|
297
|
-
* FT_Open_Args open_args;
|
|
298
|
-
*
|
|
299
|
-
*
|
|
300
|
-
* // set up incremental descriptor
|
|
301
|
-
* inc_int.funcs = my_funcs;
|
|
302
|
-
* inc_int.object = my_object;
|
|
303
|
-
*
|
|
304
|
-
* // set up optional parameter
|
|
305
|
-
* parameter.tag = FT_PARAM_TAG_INCREMENTAL;
|
|
306
|
-
* parameter.data = &inc_int;
|
|
307
|
-
*
|
|
308
|
-
* // set up FT_Open_Args structure
|
|
309
|
-
* open_args.flags = FT_OPEN_PATHNAME | FT_OPEN_PARAMS;
|
|
310
|
-
* open_args.pathname = my_font_pathname;
|
|
311
|
-
* open_args.num_params = 1;
|
|
312
|
-
* open_args.params = ¶meter; // we use one optional argument
|
|
313
|
-
*
|
|
314
|
-
* // open the font
|
|
315
|
-
* error = FT_Open_Face( library, &open_args, index, &face );
|
|
316
|
-
* ...
|
|
317
|
-
* ```
|
|
318
|
-
*
|
|
319
|
-
*/
|
|
320
|
-
typedef struct FT_Incremental_InterfaceRec_
|
|
321
|
-
{
|
|
322
|
-
const FT_Incremental_FuncsRec* funcs;
|
|
323
|
-
FT_Incremental object;
|
|
324
|
-
|
|
325
|
-
} FT_Incremental_InterfaceRec;
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
/**************************************************************************
|
|
329
|
-
*
|
|
330
|
-
* @type:
|
|
331
|
-
* FT_Incremental_Interface
|
|
332
|
-
*
|
|
333
|
-
* @description:
|
|
334
|
-
* A pointer to an @FT_Incremental_InterfaceRec structure.
|
|
335
|
-
*
|
|
336
|
-
*/
|
|
337
|
-
typedef FT_Incremental_InterfaceRec* FT_Incremental_Interface;
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
/* */
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
FT_END_HEADER
|
|
344
|
-
|
|
345
|
-
#endif /* FTINCREM_H_ */
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
/* END */
|
|
@@ -1,323 +0,0 @@
|
|
|
1
|
-
/****************************************************************************
|
|
2
|
-
*
|
|
3
|
-
* ftlcdfil.h
|
|
4
|
-
*
|
|
5
|
-
* FreeType API for color filtering of subpixel bitmap glyphs
|
|
6
|
-
* (specification).
|
|
7
|
-
*
|
|
8
|
-
* Copyright (C) 2006-2021 by
|
|
9
|
-
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
|
10
|
-
*
|
|
11
|
-
* This file is part of the FreeType project, and may only be used,
|
|
12
|
-
* modified, and distributed under the terms of the FreeType project
|
|
13
|
-
* license, LICENSE.TXT. By continuing to use, modify, or distribute
|
|
14
|
-
* this file you indicate that you have read the license and
|
|
15
|
-
* understand and accept it fully.
|
|
16
|
-
*
|
|
17
|
-
*/
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
#ifndef FTLCDFIL_H_
|
|
21
|
-
#define FTLCDFIL_H_
|
|
22
|
-
|
|
23
|
-
#include <freetype/freetype.h>
|
|
24
|
-
#include <freetype/ftparams.h>
|
|
25
|
-
|
|
26
|
-
#ifdef FREETYPE_H
|
|
27
|
-
#error "freetype.h of FreeType 1 has been loaded!"
|
|
28
|
-
#error "Please fix the directory search order for header files"
|
|
29
|
-
#error "so that freetype.h of FreeType 2 is found first."
|
|
30
|
-
#endif
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
FT_BEGIN_HEADER
|
|
34
|
-
|
|
35
|
-
/**************************************************************************
|
|
36
|
-
*
|
|
37
|
-
* @section:
|
|
38
|
-
* lcd_rendering
|
|
39
|
-
*
|
|
40
|
-
* @title:
|
|
41
|
-
* Subpixel Rendering
|
|
42
|
-
*
|
|
43
|
-
* @abstract:
|
|
44
|
-
* API to control subpixel rendering.
|
|
45
|
-
*
|
|
46
|
-
* @description:
|
|
47
|
-
* FreeType provides two alternative subpixel rendering technologies.
|
|
48
|
-
* Should you define `FT_CONFIG_OPTION_SUBPIXEL_RENDERING` in your
|
|
49
|
-
* `ftoption.h` file, this enables ClearType-style rendering.
|
|
50
|
-
* Otherwise, Harmony LCD rendering is enabled. These technologies are
|
|
51
|
-
* controlled differently and API described below, although always
|
|
52
|
-
* available, performs its function when appropriate method is enabled
|
|
53
|
-
* and does nothing otherwise.
|
|
54
|
-
*
|
|
55
|
-
* ClearType-style LCD rendering exploits the color-striped structure of
|
|
56
|
-
* LCD pixels, increasing the available resolution in the direction of
|
|
57
|
-
* the stripe (usually horizontal RGB) by a factor of~3. Using the
|
|
58
|
-
* subpixel coverages unfiltered can create severe color fringes
|
|
59
|
-
* especially when rendering thin features. Indeed, to produce
|
|
60
|
-
* black-on-white text, the nearby color subpixels must be dimmed
|
|
61
|
-
* evenly. Therefore, an equalizing 5-tap FIR filter should be applied
|
|
62
|
-
* to subpixel coverages regardless of pixel boundaries and should have
|
|
63
|
-
* these properties:
|
|
64
|
-
*
|
|
65
|
-
* 1. It should be symmetrical, like {~a, b, c, b, a~}, to avoid
|
|
66
|
-
* any shifts in appearance.
|
|
67
|
-
*
|
|
68
|
-
* 2. It should be color-balanced, meaning a~+ b~=~c, to reduce color
|
|
69
|
-
* fringes by distributing the computed coverage for one subpixel to
|
|
70
|
-
* all subpixels equally.
|
|
71
|
-
*
|
|
72
|
-
* 3. It should be normalized, meaning 2a~+ 2b~+ c~=~1.0 to maintain
|
|
73
|
-
* overall brightness.
|
|
74
|
-
*
|
|
75
|
-
* Boxy 3-tap filter {0, 1/3, 1/3, 1/3, 0} is sharper but is less
|
|
76
|
-
* forgiving of non-ideal gamma curves of a screen (and viewing angles),
|
|
77
|
-
* beveled filters are fuzzier but more tolerant.
|
|
78
|
-
*
|
|
79
|
-
* Use the @FT_Library_SetLcdFilter or @FT_Library_SetLcdFilterWeights
|
|
80
|
-
* API to specify a low-pass filter, which is then applied to
|
|
81
|
-
* subpixel-rendered bitmaps generated through @FT_Render_Glyph.
|
|
82
|
-
*
|
|
83
|
-
* Harmony LCD rendering is suitable to panels with any regular subpixel
|
|
84
|
-
* structure, not just monitors with 3 color striped subpixels, as long
|
|
85
|
-
* as the color subpixels have fixed positions relative to the pixel
|
|
86
|
-
* center. In this case, each color channel can be rendered separately
|
|
87
|
-
* after shifting the outline opposite to the subpixel shift so that the
|
|
88
|
-
* coverage maps are aligned. This method is immune to color fringes
|
|
89
|
-
* because the shifts do not change integral coverage.
|
|
90
|
-
*
|
|
91
|
-
* The subpixel geometry must be specified by xy-coordinates for each
|
|
92
|
-
* subpixel. By convention they may come in the RGB order: {{-1/3, 0},
|
|
93
|
-
* {0, 0}, {1/3, 0}} for standard RGB striped panel or {{-1/6, 1/4},
|
|
94
|
-
* {-1/6, -1/4}, {1/3, 0}} for a certain PenTile panel.
|
|
95
|
-
*
|
|
96
|
-
* Use the @FT_Library_SetLcdGeometry API to specify subpixel positions.
|
|
97
|
-
* If one follows the RGB order convention, the same order applies to the
|
|
98
|
-
* resulting @FT_PIXEL_MODE_LCD and @FT_PIXEL_MODE_LCD_V bitmaps. Note,
|
|
99
|
-
* however, that the coordinate frame for the latter must be rotated
|
|
100
|
-
* clockwise. Harmony with default LCD geometry is equivalent to
|
|
101
|
-
* ClearType with light filter.
|
|
102
|
-
*
|
|
103
|
-
* As a result of ClearType filtering or Harmony shifts, the resulting
|
|
104
|
-
* dimensions of LCD bitmaps can be slightly wider or taller than the
|
|
105
|
-
* dimensions the original outline with regard to the pixel grid.
|
|
106
|
-
* For example, for @FT_RENDER_MODE_LCD, the filter adds 2~subpixels to
|
|
107
|
-
* the left, and 2~subpixels to the right. The bitmap offset values are
|
|
108
|
-
* adjusted accordingly, so clients shouldn't need to modify their layout
|
|
109
|
-
* and glyph positioning code when enabling the filter.
|
|
110
|
-
*
|
|
111
|
-
* The ClearType and Harmony rendering is applicable to glyph bitmaps
|
|
112
|
-
* rendered through @FT_Render_Glyph, @FT_Load_Glyph, @FT_Load_Char, and
|
|
113
|
-
* @FT_Glyph_To_Bitmap, when @FT_RENDER_MODE_LCD or @FT_RENDER_MODE_LCD_V
|
|
114
|
-
* is specified. This API does not control @FT_Outline_Render and
|
|
115
|
-
* @FT_Outline_Get_Bitmap.
|
|
116
|
-
*
|
|
117
|
-
* The described algorithms can completely remove color artefacts when
|
|
118
|
-
* combined with gamma-corrected alpha blending in linear space. Each of
|
|
119
|
-
* the 3~alpha values (subpixels) must by independently used to blend one
|
|
120
|
-
* color channel. That is, red alpha blends the red channel of the text
|
|
121
|
-
* color with the red channel of the background pixel.
|
|
122
|
-
*/
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
/**************************************************************************
|
|
126
|
-
*
|
|
127
|
-
* @enum:
|
|
128
|
-
* FT_LcdFilter
|
|
129
|
-
*
|
|
130
|
-
* @description:
|
|
131
|
-
* A list of values to identify various types of LCD filters.
|
|
132
|
-
*
|
|
133
|
-
* @values:
|
|
134
|
-
* FT_LCD_FILTER_NONE ::
|
|
135
|
-
* Do not perform filtering. When used with subpixel rendering, this
|
|
136
|
-
* results in sometimes severe color fringes.
|
|
137
|
-
*
|
|
138
|
-
* FT_LCD_FILTER_DEFAULT ::
|
|
139
|
-
* This is a beveled, normalized, and color-balanced five-tap filter
|
|
140
|
-
* with weights of [0x08 0x4D 0x56 0x4D 0x08] in 1/256th units.
|
|
141
|
-
*
|
|
142
|
-
* FT_LCD_FILTER_LIGHT ::
|
|
143
|
-
* this is a boxy, normalized, and color-balanced three-tap filter with
|
|
144
|
-
* weights of [0x00 0x55 0x56 0x55 0x00] in 1/256th units.
|
|
145
|
-
*
|
|
146
|
-
* FT_LCD_FILTER_LEGACY ::
|
|
147
|
-
* FT_LCD_FILTER_LEGACY1 ::
|
|
148
|
-
* This filter corresponds to the original libXft color filter. It
|
|
149
|
-
* provides high contrast output but can exhibit really bad color
|
|
150
|
-
* fringes if glyphs are not extremely well hinted to the pixel grid.
|
|
151
|
-
* This filter is only provided for comparison purposes, and might be
|
|
152
|
-
* disabled or stay unsupported in the future. The second value is
|
|
153
|
-
* provided for compatibility with FontConfig, which historically used
|
|
154
|
-
* different enumeration, sometimes incorrectly forwarded to FreeType.
|
|
155
|
-
*
|
|
156
|
-
* @since:
|
|
157
|
-
* 2.3.0 (`FT_LCD_FILTER_LEGACY1` since 2.6.2)
|
|
158
|
-
*/
|
|
159
|
-
typedef enum FT_LcdFilter_
|
|
160
|
-
{
|
|
161
|
-
FT_LCD_FILTER_NONE = 0,
|
|
162
|
-
FT_LCD_FILTER_DEFAULT = 1,
|
|
163
|
-
FT_LCD_FILTER_LIGHT = 2,
|
|
164
|
-
FT_LCD_FILTER_LEGACY1 = 3,
|
|
165
|
-
FT_LCD_FILTER_LEGACY = 16,
|
|
166
|
-
|
|
167
|
-
FT_LCD_FILTER_MAX /* do not remove */
|
|
168
|
-
|
|
169
|
-
} FT_LcdFilter;
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
/**************************************************************************
|
|
173
|
-
*
|
|
174
|
-
* @function:
|
|
175
|
-
* FT_Library_SetLcdFilter
|
|
176
|
-
*
|
|
177
|
-
* @description:
|
|
178
|
-
* This function is used to change filter applied to LCD decimated
|
|
179
|
-
* bitmaps, like the ones used when calling @FT_Render_Glyph with
|
|
180
|
-
* @FT_RENDER_MODE_LCD or @FT_RENDER_MODE_LCD_V.
|
|
181
|
-
*
|
|
182
|
-
* @input:
|
|
183
|
-
* library ::
|
|
184
|
-
* A handle to the target library instance.
|
|
185
|
-
*
|
|
186
|
-
* filter ::
|
|
187
|
-
* The filter type.
|
|
188
|
-
*
|
|
189
|
-
* You can use @FT_LCD_FILTER_NONE here to disable this feature, or
|
|
190
|
-
* @FT_LCD_FILTER_DEFAULT to use a default filter that should work well
|
|
191
|
-
* on most LCD screens.
|
|
192
|
-
*
|
|
193
|
-
* @return:
|
|
194
|
-
* FreeType error code. 0~means success.
|
|
195
|
-
*
|
|
196
|
-
* @note:
|
|
197
|
-
* Since 2.10.3 the LCD filtering is enabled with @FT_LCD_FILTER_DEFAULT.
|
|
198
|
-
* It is no longer necessary to call this function explicitly except
|
|
199
|
-
* to choose a different filter or disable filtering altogether with
|
|
200
|
-
* @FT_LCD_FILTER_NONE.
|
|
201
|
-
*
|
|
202
|
-
* This function does nothing but returns `FT_Err_Unimplemented_Feature`
|
|
203
|
-
* if the configuration macro `FT_CONFIG_OPTION_SUBPIXEL_RENDERING` is
|
|
204
|
-
* not defined in your build of the library.
|
|
205
|
-
*
|
|
206
|
-
* @since:
|
|
207
|
-
* 2.3.0
|
|
208
|
-
*/
|
|
209
|
-
FT_EXPORT( FT_Error )
|
|
210
|
-
FT_Library_SetLcdFilter( FT_Library library,
|
|
211
|
-
FT_LcdFilter filter );
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
/**************************************************************************
|
|
215
|
-
*
|
|
216
|
-
* @function:
|
|
217
|
-
* FT_Library_SetLcdFilterWeights
|
|
218
|
-
*
|
|
219
|
-
* @description:
|
|
220
|
-
* This function can be used to enable LCD filter with custom weights,
|
|
221
|
-
* instead of using presets in @FT_Library_SetLcdFilter.
|
|
222
|
-
*
|
|
223
|
-
* @input:
|
|
224
|
-
* library ::
|
|
225
|
-
* A handle to the target library instance.
|
|
226
|
-
*
|
|
227
|
-
* weights ::
|
|
228
|
-
* A pointer to an array; the function copies the first five bytes and
|
|
229
|
-
* uses them to specify the filter weights in 1/256th units.
|
|
230
|
-
*
|
|
231
|
-
* @return:
|
|
232
|
-
* FreeType error code. 0~means success.
|
|
233
|
-
*
|
|
234
|
-
* @note:
|
|
235
|
-
* This function does nothing but returns `FT_Err_Unimplemented_Feature`
|
|
236
|
-
* if the configuration macro `FT_CONFIG_OPTION_SUBPIXEL_RENDERING` is
|
|
237
|
-
* not defined in your build of the library.
|
|
238
|
-
*
|
|
239
|
-
* LCD filter weights can also be set per face using @FT_Face_Properties
|
|
240
|
-
* with @FT_PARAM_TAG_LCD_FILTER_WEIGHTS.
|
|
241
|
-
*
|
|
242
|
-
* @since:
|
|
243
|
-
* 2.4.0
|
|
244
|
-
*/
|
|
245
|
-
FT_EXPORT( FT_Error )
|
|
246
|
-
FT_Library_SetLcdFilterWeights( FT_Library library,
|
|
247
|
-
unsigned char *weights );
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
/**************************************************************************
|
|
251
|
-
*
|
|
252
|
-
* @type:
|
|
253
|
-
* FT_LcdFiveTapFilter
|
|
254
|
-
*
|
|
255
|
-
* @description:
|
|
256
|
-
* A typedef for passing the five LCD filter weights to
|
|
257
|
-
* @FT_Face_Properties within an @FT_Parameter structure.
|
|
258
|
-
*
|
|
259
|
-
* @since:
|
|
260
|
-
* 2.8
|
|
261
|
-
*
|
|
262
|
-
*/
|
|
263
|
-
#define FT_LCD_FILTER_FIVE_TAPS 5
|
|
264
|
-
|
|
265
|
-
typedef FT_Byte FT_LcdFiveTapFilter[FT_LCD_FILTER_FIVE_TAPS];
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
/**************************************************************************
|
|
269
|
-
*
|
|
270
|
-
* @function:
|
|
271
|
-
* FT_Library_SetLcdGeometry
|
|
272
|
-
*
|
|
273
|
-
* @description:
|
|
274
|
-
* This function can be used to modify default positions of color
|
|
275
|
-
* subpixels, which controls Harmony LCD rendering.
|
|
276
|
-
*
|
|
277
|
-
* @input:
|
|
278
|
-
* library ::
|
|
279
|
-
* A handle to the target library instance.
|
|
280
|
-
*
|
|
281
|
-
* sub ::
|
|
282
|
-
* A pointer to an array of 3 vectors in 26.6 fractional pixel format;
|
|
283
|
-
* the function modifies the default values, see the note below.
|
|
284
|
-
*
|
|
285
|
-
* @return:
|
|
286
|
-
* FreeType error code. 0~means success.
|
|
287
|
-
*
|
|
288
|
-
* @note:
|
|
289
|
-
* Subpixel geometry examples:
|
|
290
|
-
*
|
|
291
|
-
* - {{-21, 0}, {0, 0}, {21, 0}} is the default, corresponding to 3 color
|
|
292
|
-
* stripes shifted by a third of a pixel. This could be an RGB panel.
|
|
293
|
-
*
|
|
294
|
-
* - {{21, 0}, {0, 0}, {-21, 0}} looks the same as the default but can
|
|
295
|
-
* specify a BGR panel instead, while keeping the bitmap in the same
|
|
296
|
-
* RGB888 format.
|
|
297
|
-
*
|
|
298
|
-
* - {{0, 21}, {0, 0}, {0, -21}} is the vertical RGB, but the bitmap
|
|
299
|
-
* stays RGB888 as a result.
|
|
300
|
-
*
|
|
301
|
-
* - {{-11, 16}, {-11, -16}, {22, 0}} is a certain PenTile arrangement.
|
|
302
|
-
*
|
|
303
|
-
* This function does nothing and returns `FT_Err_Unimplemented_Feature`
|
|
304
|
-
* in the context of ClearType-style subpixel rendering when
|
|
305
|
-
* `FT_CONFIG_OPTION_SUBPIXEL_RENDERING` is defined in your build of the
|
|
306
|
-
* library.
|
|
307
|
-
*
|
|
308
|
-
* @since:
|
|
309
|
-
* 2.10.0
|
|
310
|
-
*/
|
|
311
|
-
FT_EXPORT( FT_Error )
|
|
312
|
-
FT_Library_SetLcdGeometry( FT_Library library,
|
|
313
|
-
FT_Vector sub[3] );
|
|
314
|
-
|
|
315
|
-
/* */
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
FT_END_HEADER
|
|
319
|
-
|
|
320
|
-
#endif /* FTLCDFIL_H_ */
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
/* END */
|