Werner Lemberg pushed to branch master at FreeType / FreeType
Commits:
-
cfe54d6a
by Werner Lemberg at 2023-04-27T06:24:48+02:00
s/this is,/that is,/
-
9a3d05d9
by Werner Lemberg at 2023-04-27T06:24:48+02:00
* src/ttgxvar.c: Minor changes.
(TT_Get_MM_Var): Improve tracing messages.
(tt_set_mm_blend): Minor speed-up.
-
13df1c7d
by Werner Lemberg at 2023-04-28T06:39:32+02:00
Minor documentation updates.
-
4908c1e8
by Werner Lemberg at 2023-04-28T06:54:25+02:00
* src/cid/cidgload.c (cid_load_glyph): Fix compiler warnings.
19 changed files:
Changes:
docs/CHANGES
... |
... |
@@ -2424,7 +2424,7 @@ CHANGES BETWEEN 2.3.8 and 2.3.7 |
2424
|
2424
|
is provided for x86 and ARM. See FT_CONFIG_OPTION_INLINE_MULFIX
|
2425
|
2425
|
and FT_CONFIG_OPTION_NO_ASSEMBLER (in ftoption.h) for more.
|
2426
|
2426
|
|
2427
|
|
- - The handling of `tricky' fonts (this is, fonts which don't work
|
|
2427
|
+ - The handling of `tricky' fonts (that is, fonts which don't work
|
2428
|
2428
|
with the autohinter, needing the font format's hinting engine)
|
2429
|
2429
|
has been generalized and changed slightly:
|
2430
|
2430
|
|
... |
... |
@@ -2881,7 +2881,7 @@ CHANGES BETWEEN 2.2 and 2.1.10 |
2881
|
2881
|
|
2882
|
2882
|
II. IMPORTANT CHANGES
|
2883
|
2883
|
|
2884
|
|
- - Version 2.2 no longer exposes its internals, this is, the header
|
|
2884
|
+ - Version 2.2 no longer exposes its internals, that is, the header
|
2885
|
2885
|
files located in the `include/freetype/internal' directory of
|
2886
|
2886
|
the source package are not copied anymore by the `make install'
|
2887
|
2887
|
command. Consequently, a number of rogue clients which directly
|
docs/formats.txt
... |
... |
@@ -57,7 +57,7 @@ Notes |
57
|
57
|
(`*') in the table below.
|
58
|
58
|
|
59
|
59
|
FreeType can be configured to support Mac files (on older Mac OS
|
60
|
|
- versions, a `file' is stored as a data and a resource fork, this is,
|
|
60
|
+ versions, a `file' is stored as a data and a resource fork, that is,
|
61
|
61
|
within two separate data chunks). If a file can't be opened as a
|
62
|
62
|
font, FreeType then checks whether it is a resource fork, trying to
|
63
|
63
|
extract the contained font data from either a `POST' or `sfnt'
|
include/freetype/freetype.h
... |
... |
@@ -918,7 +918,7 @@ FT_BEGIN_HEADER |
918
|
918
|
* If we have the third named instance of face~4, say, `face_index` is
|
919
|
919
|
* set to 0x00030004.
|
920
|
920
|
*
|
921
|
|
- * Bit 31 is always zero (this is, `face_index` is always a positive
|
|
921
|
+ * Bit 31 is always zero (that is, `face_index` is always a positive
|
922
|
922
|
* value).
|
923
|
923
|
*
|
924
|
924
|
* [Since 2.9] Changing the design coordinates with
|
... |
... |
@@ -936,7 +936,7 @@ FT_BEGIN_HEADER |
936
|
936
|
*
|
937
|
937
|
* [Since 2.6.1] Bits 16-30 hold the number of named instances
|
938
|
938
|
* available for the current face if we have a GX or OpenType variation
|
939
|
|
- * (sub)font. Bit 31 is always zero (this is, `style_flags` is always
|
|
939
|
+ * (sub)font. Bit 31 is always zero (that is, `style_flags` is always
|
940
|
940
|
* a positive value). Note that a variation font has always at least
|
941
|
941
|
* one named instance, namely the default instance.
|
942
|
942
|
*
|
... |
... |
@@ -1205,13 +1205,13 @@ FT_BEGIN_HEADER |
1205
|
1205
|
* successfully; in all other cases you get an
|
1206
|
1206
|
* `FT_Err_Invalid_Argument` error.
|
1207
|
1207
|
*
|
1208
|
|
- * Note that CID-keyed fonts that are in an SFNT wrapper (this is, all
|
|
1208
|
+ * Note that CID-keyed fonts that are in an SFNT wrapper (that is, all
|
1209
|
1209
|
* OpenType/CFF fonts) don't have this flag set since the glyphs are
|
1210
|
1210
|
* accessed in the normal way (using contiguous indices); the
|
1211
|
1211
|
* 'CID-ness' isn't visible to the application.
|
1212
|
1212
|
*
|
1213
|
1213
|
* FT_FACE_FLAG_TRICKY ::
|
1214
|
|
- * The face is 'tricky', this is, it always needs the font format's
|
|
1214
|
+ * The face is 'tricky', that is, it always needs the font format's
|
1215
|
1215
|
* native hinting engine to get a reasonable result. A typical example
|
1216
|
1216
|
* is the old Chinese font `mingli.ttf` (but not `mingliu.ttc`) that
|
1217
|
1217
|
* uses TrueType bytecode instructions to move and scale all of its
|
... |
... |
@@ -1233,8 +1233,8 @@ FT_BEGIN_HEADER |
1233
|
1233
|
* FT_FACE_FLAG_VARIATION ::
|
1234
|
1234
|
* [Since 2.9] Set if the current face (or named instance) has been
|
1235
|
1235
|
* altered with @FT_Set_MM_Design_Coordinates,
|
1236
|
|
- * @FT_Set_Var_Design_Coordinates, or @FT_Set_Var_Blend_Coordinates.
|
1237
|
|
- * This flag is unset by a call to @FT_Set_Named_Instance.
|
|
1236
|
+ * @FT_Set_Var_Design_Coordinates, @FT_Set_Var_Blend_Coordinates, or
|
|
1237
|
+ * @FT_Set_MM_WeightVector to select a non-default instance.
|
1238
|
1238
|
*
|
1239
|
1239
|
* FT_FACE_FLAG_SVG ::
|
1240
|
1240
|
* [Since 2.12] The face has an 'SVG~' OpenType table.
|
... |
... |
@@ -1449,8 +1449,8 @@ FT_BEGIN_HEADER |
1449
|
1449
|
*
|
1450
|
1450
|
* @description:
|
1451
|
1451
|
* A macro that returns true whenever a face object has been altered by
|
1452
|
|
- * @FT_Set_MM_Design_Coordinates, @FT_Set_Var_Design_Coordinates, or
|
1453
|
|
- * @FT_Set_Var_Blend_Coordinates.
|
|
1452
|
+ * @FT_Set_MM_Design_Coordinates, @FT_Set_Var_Design_Coordinates,
|
|
1453
|
+ * @FT_Set_Var_Blend_Coordinates, or @FT_Set_MM_WeightVector.
|
1454
|
1454
|
*
|
1455
|
1455
|
* @since:
|
1456
|
1456
|
* 2.9
|
... |
... |
@@ -2449,7 +2449,7 @@ FT_BEGIN_HEADER |
2449
|
2449
|
* Each new face object created with this function also owns a default
|
2450
|
2450
|
* @FT_Size object, accessible as `face->size`.
|
2451
|
2451
|
*
|
2452
|
|
- * One @FT_Library instance can have multiple face objects, this is,
|
|
2452
|
+ * One @FT_Library instance can have multiple face objects, that is,
|
2453
|
2453
|
* @FT_Open_Face and its siblings can be called multiple times using the
|
2454
|
2454
|
* same `library` argument.
|
2455
|
2455
|
*
|
... |
... |
@@ -2677,7 +2677,7 @@ FT_BEGIN_HEADER |
2677
|
2677
|
* silently uses outlines if there is no bitmap for a given glyph index.
|
2678
|
2678
|
*
|
2679
|
2679
|
* For GX and OpenType variation fonts, a bitmap strike makes sense only
|
2680
|
|
- * if the default instance is active (this is, no glyph variation takes
|
|
2680
|
+ * if the default instance is active (that is, no glyph variation takes
|
2681
|
2681
|
* place); otherwise, FreeType simply ignores bitmap strikes. The same
|
2682
|
2682
|
* is true for all named instances that are different from the default
|
2683
|
2683
|
* instance.
|
... |
... |
@@ -2974,7 +2974,7 @@ FT_BEGIN_HEADER |
2974
|
2974
|
* glyph may be transformed. See @FT_Set_Transform for the details.
|
2975
|
2975
|
*
|
2976
|
2976
|
* For subsetted CID-keyed fonts, `FT_Err_Invalid_Argument` is returned
|
2977
|
|
- * for invalid CID values (this is, for CID values that don't have a
|
|
2977
|
+ * for invalid CID values (that is, for CID values that don't have a
|
2978
|
2978
|
* corresponding glyph in the font). See the discussion of the
|
2979
|
2979
|
* @FT_FACE_FLAG_CID_KEYED flag for more details.
|
2980
|
2980
|
*
|
... |
... |
@@ -4264,9 +4264,10 @@ FT_BEGIN_HEADER |
4264
|
4264
|
*
|
4265
|
4265
|
* [Since 2.9] Special PostScript names for named instances are only
|
4266
|
4266
|
* returned if the named instance is set with @FT_Set_Named_Instance (and
|
4267
|
|
- * the font has corresponding entries in its 'fvar' table). If
|
4268
|
|
- * @FT_IS_VARIATION returns true, the algorithmically derived PostScript
|
4269
|
|
- * name is provided, not looking up special entries for named instances.
|
|
4267
|
+ * the font has corresponding entries in its 'fvar' table or is the
|
|
4268
|
+ * default named instance). If @FT_IS_VARIATION returns true, the
|
|
4269
|
+ * algorithmically derived PostScript name is provided, not looking up
|
|
4270
|
+ * special entries for named instances.
|
4270
|
4271
|
*/
|
4271
|
4272
|
FT_EXPORT( const char* )
|
4272
|
4273
|
FT_Get_Postscript_Name( FT_Face face );
|
include/freetype/ftdriver.h
... |
... |
@@ -134,7 +134,7 @@ FT_BEGIN_HEADER |
134
|
134
|
* each being rounded to the nearest pixel edge, taking care of overshoot
|
135
|
135
|
* suppression at small sizes, stem darkening, and scaling.
|
136
|
136
|
*
|
137
|
|
- * Hstems (this is, hint values defined in the font to help align
|
|
137
|
+ * Hstems (that is, hint values defined in the font to help align
|
138
|
138
|
* horizontal features) that fall within a blue zone are said to be
|
139
|
139
|
* 'captured' and are aligned to that zone. Uncaptured stems are moved
|
140
|
140
|
* in one of four ways, top edge up or down, bottom edge up or down.
|
... |
... |
@@ -446,7 +446,7 @@ FT_BEGIN_HEADER |
446
|
446
|
* at smaller sizes.
|
447
|
447
|
*
|
448
|
448
|
* For the auto-hinter, stem-darkening is experimental currently and thus
|
449
|
|
- * switched off by default (this is, `no-stem-darkening` is set to TRUE
|
|
449
|
+ * switched off by default (that is, `no-stem-darkening` is set to TRUE
|
450
|
450
|
* by default). Total consistency with the CFF driver is not achieved
|
451
|
451
|
* right now because the emboldening method differs and glyphs must be
|
452
|
452
|
* scaled down on the Y-axis to keep outline points inside their
|
include/freetype/ftimage.h
... |
... |
@@ -862,7 +862,7 @@ FT_BEGIN_HEADER |
862
|
862
|
* @FT_SpanFunc that takes the y~coordinate of the span as a parameter.
|
863
|
863
|
*
|
864
|
864
|
* The anti-aliased rasterizer produces coverage values from 0 to 255,
|
865
|
|
- * this is, from completely transparent to completely opaque.
|
|
865
|
+ * that is, from completely transparent to completely opaque.
|
866
|
866
|
*/
|
867
|
867
|
typedef struct FT_Span_
|
868
|
868
|
{
|
include/freetype/ftoutln.h
... |
... |
@@ -118,7 +118,7 @@ FT_BEGIN_HEADER |
118
|
118
|
* attachement.
|
119
|
119
|
*
|
120
|
120
|
* Similarly, the function returns success for an empty outline also
|
121
|
|
- * (doing nothing, this is, not calling any emitter); if necessary, you
|
|
121
|
+ * (doing nothing, that is, not calling any emitter); if necessary, you
|
122
|
122
|
* should filter this out, too.
|
123
|
123
|
*/
|
124
|
124
|
FT_EXPORT( FT_Error )
|
include/freetype/internal/tttypes.h
... |
... |
@@ -1200,12 +1200,16 @@ FT_BEGIN_HEADER |
1200
|
1200
|
* mm ::
|
1201
|
1201
|
* A pointer to the Multiple Masters service.
|
1202
|
1202
|
*
|
1203
|
|
- * var ::
|
1204
|
|
- * A pointer to the Metrics Variations service.
|
|
1203
|
+ * tt_var ::
|
|
1204
|
+ * A pointer to the Metrics Variations service for the "truetype"
|
|
1205
|
+ * driver.
|
1205
|
1206
|
*
|
1206
|
|
- * hdmx ::
|
1207
|
|
- * The face's horizontal device metrics ('hdmx' table). This table is
|
1208
|
|
- * optional in TrueType/OpenType fonts.
|
|
1207
|
+ * face_var ::
|
|
1208
|
+ * A pointer to the Metrics Variations service for this `TT_Face`'s
|
|
1209
|
+ * driver.
|
|
1210
|
+ *
|
|
1211
|
+ * psaux ::
|
|
1212
|
+ * A pointer to the PostScript Auxiliary service.
|
1209
|
1213
|
*
|
1210
|
1214
|
* gasp ::
|
1211
|
1215
|
* The grid-fitting and scaling properties table ('gasp'). This table
|
... |
... |
@@ -1357,14 +1361,6 @@ FT_BEGIN_HEADER |
1357
|
1361
|
* A mapping between the strike indices exposed by the API and the
|
1358
|
1362
|
* indices used in the font's sbit table.
|
1359
|
1363
|
*
|
1360
|
|
- * cpal ::
|
1361
|
|
- * A pointer to data related to the 'CPAL' table. `NULL` if the table
|
1362
|
|
- * is not available.
|
1363
|
|
- *
|
1364
|
|
- * colr ::
|
1365
|
|
- * A pointer to data related to the 'COLR' table. `NULL` if the table
|
1366
|
|
- * is not available.
|
1367
|
|
- *
|
1368
|
1364
|
* kern_table ::
|
1369
|
1365
|
* A pointer to the 'kern' table.
|
1370
|
1366
|
*
|
... |
... |
@@ -1405,6 +1401,18 @@ FT_BEGIN_HEADER |
1405
|
1401
|
*
|
1406
|
1402
|
* ebdt_size ::
|
1407
|
1403
|
* The size of the sbit data table.
|
|
1404
|
+ *
|
|
1405
|
+ * cpal ::
|
|
1406
|
+ * A pointer to data related to the 'CPAL' table. `NULL` if the table
|
|
1407
|
+ * is not available.
|
|
1408
|
+ *
|
|
1409
|
+ * colr ::
|
|
1410
|
+ * A pointer to data related to the 'COLR' table. `NULL` if the table
|
|
1411
|
+ * is not available.
|
|
1412
|
+ *
|
|
1413
|
+ * svg ::
|
|
1414
|
+ * A pointer to data related to the 'SVG' table. `NULL` if the table
|
|
1415
|
+ * is not available.
|
1408
|
1416
|
*/
|
1409
|
1417
|
typedef struct TT_FaceRec_
|
1410
|
1418
|
{
|
... |
... |
@@ -1462,7 +1470,7 @@ FT_BEGIN_HEADER |
1462
|
1470
|
/* a typeless pointer to the FT_Service_MetricsVariationsRec table */
|
1463
|
1471
|
/* used to handle the HVAR, VVAR, and MVAR OpenType tables by this */
|
1464
|
1472
|
/* TT_Face's driver */
|
1465
|
|
- void* face_var;
|
|
1473
|
+ void* face_var; /* since 2.13.1 */
|
1466
|
1474
|
#endif
|
1467
|
1475
|
|
1468
|
1476
|
/* a typeless pointer to the PostScript Aux service */
|
src/autofit/afblue.dat
... |
... |
@@ -89,7 +89,7 @@ AF_BLUE_STRING_ENUM AF_BLUE_STRINGS_ARRAY AF_BLUE_STRING_MAX_LEN: |
89
|
89
|
"ت ث ط ظ ك"
|
90
|
90
|
// We don't necessarily have access to medial forms via Unicode in case
|
91
|
91
|
// Arabic presentational forms are missing. The only character that is
|
92
|
|
- // guaranteed to have the same vertical position with joining (this is,
|
|
92
|
+ // guaranteed to have the same vertical position with joining (that is,
|
93
|
93
|
// non-isolated) forms is U+0640, ARABIC TATWEEL, which must join both
|
94
|
94
|
// round and flat curves.
|
95
|
95
|
AF_BLUE_STRING_ARABIC_JOIN
|
src/autofit/aflatin.c
... |
... |
@@ -2038,7 +2038,7 @@ |
2038
|
2038
|
max = seg2->max_coord;
|
2039
|
2039
|
|
2040
|
2040
|
/* compute maximum coordinate difference of the two segments */
|
2041
|
|
- /* (this is, how much they overlap) */
|
|
2041
|
+ /* (that is, how much they overlap) */
|
2042
|
2042
|
len = max - min;
|
2043
|
2043
|
if ( len >= len_threshold )
|
2044
|
2044
|
{
|
src/autofit/afshaper.c
... |
... |
@@ -258,7 +258,7 @@ |
258
|
258
|
/*
|
259
|
259
|
* We now check whether we can construct blue zones, using glyphs
|
260
|
260
|
* covered by the feature only. In case there is not a single zone
|
261
|
|
- * (this is, not a single character is covered), we skip this coverage.
|
|
261
|
+ * (that is, not a single character is covered), we skip this coverage.
|
262
|
262
|
*
|
263
|
263
|
*/
|
264
|
264
|
if ( style_class->coverage != AF_COVERAGE_DEFAULT )
|
... |
... |
@@ -313,9 +313,9 @@ |
313
|
313
|
* hinted and usually rendered glyph.
|
314
|
314
|
*
|
315
|
315
|
* Consider the superscript feature of font `pala.ttf': Some of the
|
316
|
|
- * glyphs are `real', this is, they have a zero vertical offset, but
|
|
316
|
+ * glyphs are `real', that is, they have a zero vertical offset, but
|
317
|
317
|
* most of them are small caps glyphs shifted up to the superscript
|
318
|
|
- * position (this is, the `sups' feature is present in both the GSUB and
|
|
318
|
+ * position (that is, the `sups' feature is present in both the GSUB and
|
319
|
319
|
* GPOS tables). The code for blue zones computation actually uses a
|
320
|
320
|
* feature's y offset so that the `real' glyphs get correct hints. But
|
321
|
321
|
* later on it is impossible to decide whether a glyph index belongs to,
|
src/base/ftcalc.c
... |
... |
@@ -1061,7 +1061,7 @@ |
1061
|
1061
|
/* */
|
1062
|
1062
|
/* This approach has the advantage that the angle between */
|
1063
|
1063
|
/* `in' and `out' is not checked. In case one of the two */
|
1064
|
|
- /* vectors is `dominant', this is, much larger than the */
|
|
1064
|
+ /* vectors is `dominant', that is, much larger than the */
|
1065
|
1065
|
/* other vector, we thus always have a flat corner. */
|
1066
|
1066
|
/* */
|
1067
|
1067
|
/* hypotenuse */
|
src/base/ftsystem.c
... |
... |
@@ -206,7 +206,7 @@ |
206
|
206
|
* The number of bytes to read from the stream.
|
207
|
207
|
*
|
208
|
208
|
* @Return:
|
209
|
|
- * The number of bytes actually read. If `count' is zero (this is,
|
|
209
|
+ * The number of bytes actually read. If `count' is zero (that is,
|
210
|
210
|
* the function is used for seeking), a non-zero return value
|
211
|
211
|
* indicates an error.
|
212
|
212
|
*/
|
src/cff/cffload.c
... |
... |
@@ -400,7 +400,7 @@ |
400
|
400
|
|
401
|
401
|
/* Allocate a table containing pointers to an index's elements. */
|
402
|
402
|
/* The `pool' argument makes this function convert the index */
|
403
|
|
- /* entries to C-style strings (this is, null-terminated). */
|
|
403
|
+ /* entries to C-style strings (that is, null-terminated). */
|
404
|
404
|
static FT_Error
|
405
|
405
|
cff_index_get_pointers( CFF_Index idx,
|
406
|
406
|
FT_Byte*** table,
|
... |
... |
@@ -1612,7 +1612,7 @@ |
1612
|
1612
|
FT_Service_MultiMasters mm = (FT_Service_MultiMasters)face->mm;
|
1613
|
1613
|
|
1614
|
1614
|
|
1615
|
|
- if (mm)
|
|
1615
|
+ if ( mm )
|
1616
|
1616
|
mm->done_blend( FT_FACE( face ) );
|
1617
|
1617
|
}
|
1618
|
1618
|
|
src/cff/cffparse.c
... |
... |
@@ -622,7 +622,7 @@ |
622
|
622
|
|
623
|
623
|
dict->has_font_matrix = TRUE;
|
624
|
624
|
|
625
|
|
- /* We expect a well-formed font matrix, this is, the matrix elements */
|
|
625
|
+ /* We expect a well-formed font matrix, that is, the matrix elements */
|
626
|
626
|
/* `xx' and `yy' are of approximately the same magnitude. To avoid */
|
627
|
627
|
/* loss of precision, we use the magnitude of the largest matrix */
|
628
|
628
|
/* element to scale all other elements. The scaling factor is then */
|
src/cid/cidgload.c
... |
... |
@@ -129,14 +129,14 @@ |
129
|
129
|
(cid->fd_bytes == 2 && fd_select == 0xFFFFU ) )
|
130
|
130
|
{
|
131
|
131
|
FT_TRACE1(( "cid_load_glyph: fail for glyph_index=%d, "
|
132
|
|
- "FD number %d is the max integer fitting into %d byte%s\n",
|
|
132
|
+ "FD number %ld is the max integer fitting into %d byte%s\n",
|
133
|
133
|
glyph_index, fd_select, cid->fd_bytes,
|
134
|
134
|
cid->fd_bytes == 1 ? "" : "s" ));
|
135
|
135
|
}
|
136
|
136
|
else
|
137
|
137
|
{
|
138
|
138
|
FT_TRACE0(( "cid_load_glyph: fail for glyph_index=%d, "
|
139
|
|
- "FD number %d > number of dicts %d\n",
|
|
139
|
+ "FD number %ld > number of dicts %d\n",
|
140
|
140
|
glyph_index, fd_select, cid->num_dicts ));
|
141
|
141
|
}
|
142
|
142
|
error = FT_THROW( Invalid_Offset );
|
src/pshinter/pshalgo.c
... |
... |
@@ -516,7 +516,7 @@ |
516
|
516
|
if ( !psh_hint_is_fitted( parent ) )
|
517
|
517
|
psh_hint_align( parent, globals, dimension, glyph );
|
518
|
518
|
|
519
|
|
- /* keep original relation between hints, this is, use the */
|
|
519
|
+ /* keep original relation between hints, that is, use the */
|
520
|
520
|
/* scaled distance between the centers of the hints to */
|
521
|
521
|
/* compute the new position */
|
522
|
522
|
par_org_center = parent->org_pos + ( parent->org_len >> 1 );
|
src/sdf/ftsdf.c
... |
... |
@@ -2371,7 +2371,7 @@ |
2371
|
2371
|
* ```
|
2372
|
2372
|
*
|
2373
|
2373
|
* (6) Our task is to find a value of `t` such that the above equation
|
2374
|
|
- * `Q(t)` becomes zero, this is, the point-to-curve vector makes
|
|
2374
|
+ * `Q(t)` becomes zero, that is, the point-to-curve vector makes
|
2375
|
2375
|
* 90~degrees with the curve. We solve this with the Newton-Raphson
|
2376
|
2376
|
* method.
|
2377
|
2377
|
*
|
... |
... |
@@ -2684,7 +2684,7 @@ |
2684
|
2684
|
* ```
|
2685
|
2685
|
*
|
2686
|
2686
|
* (6) Our task is to find a value of `t` such that the above equation
|
2687
|
|
- * `Q(t)` becomes zero, this is, the point-to-curve vector makes
|
|
2687
|
+ * `Q(t)` becomes zero, that is, the point-to-curve vector makes
|
2688
|
2688
|
* 90~degree with curve. We solve this with the Newton-Raphson
|
2689
|
2689
|
* method.
|
2690
|
2690
|
*
|
src/truetype/ttgxvar.c
... |
... |
@@ -2544,7 +2544,7 @@ |
2544
|
2544
|
goto Exit;
|
2545
|
2545
|
}
|
2546
|
2546
|
|
2547
|
|
- FT_TRACE5(( "%d instance%s\n",
|
|
2547
|
+ FT_TRACE5(( "%d named instance%s\n",
|
2548
|
2548
|
fvar_head.instanceCount,
|
2549
|
2549
|
fvar_head.instanceCount == 1 ? "" : "s" ));
|
2550
|
2550
|
|
... |
... |
@@ -2602,7 +2602,7 @@ |
2602
|
2602
|
|
2603
|
2603
|
(void)FT_STREAM_SEEK( pos );
|
2604
|
2604
|
|
2605
|
|
- FT_TRACE5(( " instance %d (%s%s%s, %s%s%s)\n",
|
|
2605
|
+ FT_TRACE5(( " named instance %d (%s%s%s, %s%s%s)\n",
|
2606
|
2606
|
i,
|
2607
|
2607
|
strname ? "name: `" : "",
|
2608
|
2608
|
strname ? strname : "unnamed",
|
... |
... |
@@ -2845,26 +2845,29 @@ |
2845
|
2845
|
}
|
2846
|
2846
|
}
|
2847
|
2847
|
|
2848
|
|
- if ( FT_IS_NAMED_INSTANCE( FT_FACE( face ) ) )
|
|
2848
|
+ if ( !have_diff )
|
2849
|
2849
|
{
|
2850
|
|
- FT_UInt instance_index = (FT_UInt)face->root.face_index >> 16;
|
|
2850
|
+ if ( FT_IS_NAMED_INSTANCE( FT_FACE( face ) ) )
|
|
2851
|
+ {
|
|
2852
|
+ FT_UInt instance_index = (FT_UInt)face->root.face_index >> 16;
|
2851
|
2853
|
|
2852
|
2854
|
|
2853
|
|
- c = blend->normalizedcoords + i;
|
2854
|
|
- n = blend->normalized_stylecoords +
|
2855
|
|
- ( instance_index - 1 ) * mmvar->num_axis +
|
2856
|
|
- i;
|
|
2855
|
+ c = blend->normalizedcoords + i;
|
|
2856
|
+ n = blend->normalized_stylecoords +
|
|
2857
|
+ ( instance_index - 1 ) * mmvar->num_axis +
|
|
2858
|
+ i;
|
2857
|
2859
|
|
2858
|
|
- for ( j = i; j < mmvar->num_axis; j++, n++, c++ )
|
2859
|
|
- if ( *c != *n )
|
2860
|
|
- have_diff = 1;
|
2861
|
|
- }
|
2862
|
|
- else
|
2863
|
|
- {
|
2864
|
|
- c = blend->normalizedcoords + i;
|
2865
|
|
- for ( j = i; j < mmvar->num_axis; j++, c++ )
|
2866
|
|
- if ( *c != 0 )
|
2867
|
|
- have_diff = 1;
|
|
2860
|
+ for ( j = i; j < mmvar->num_axis; j++, n++, c++ )
|
|
2861
|
+ if ( *c != *n )
|
|
2862
|
+ have_diff = 1;
|
|
2863
|
+ }
|
|
2864
|
+ else
|
|
2865
|
+ {
|
|
2866
|
+ c = blend->normalizedcoords + i;
|
|
2867
|
+ for ( j = i; j < mmvar->num_axis; j++, c++ )
|
|
2868
|
+ if ( *c != 0 )
|
|
2869
|
+ have_diff = 1;
|
|
2870
|
+ }
|
2868
|
2871
|
}
|
2869
|
2872
|
|
2870
|
2873
|
/* return value -1 indicates `no change' */
|
... |
... |
@@ -2962,7 +2965,8 @@ |
2962
|
2965
|
* An array of `num_coords', each between [-1,1].
|
2963
|
2966
|
*
|
2964
|
2967
|
* @Return:
|
2965
|
|
- * FreeType error code. 0 means success.
|
|
2968
|
+ * FreeType error code. 0 means success, -1 means success and unchanged
|
|
2969
|
+ * axis values.
|
2966
|
2970
|
*/
|
2967
|
2971
|
FT_LOCAL_DEF( FT_Error )
|
2968
|
2972
|
TT_Set_MM_Blend( TT_Face face,
|
... |
... |
@@ -3009,7 +3013,8 @@ |
3009
|
3013
|
* An array of `num_coords', each between [-1,1].
|
3010
|
3014
|
*
|
3011
|
3015
|
* @Return:
|
3012
|
|
- * FreeType error code. 0 means success.
|
|
3016
|
+ * FreeType error code. 0 means success, -1 means success and unchanged
|
|
3017
|
+ * axis values.
|
3013
|
3018
|
*/
|
3014
|
3019
|
FT_LOCAL_DEF( FT_Error )
|
3015
|
3020
|
TT_Get_MM_Blend( TT_Face face,
|
src/truetype/ttinterp.c
... |
... |
@@ -7837,7 +7837,7 @@ |
7837
|
7837
|
/* a variable number of arguments */
|
7838
|
7838
|
|
7839
|
7839
|
/* it is the job of the application to `activate' GX handling, */
|
7840
|
|
- /* this is, calling any of the GX API functions on the current */
|
|
7840
|
+ /* that is, calling any of the GX API functions on the current */
|
7841
|
7841
|
/* font to select a variation instance */
|
7842
|
7842
|
if ( exc->face->blend )
|
7843
|
7843
|
exc->new_top = exc->args + exc->face->blend->num_axis;
|
... |
... |
@@ -8397,7 +8397,7 @@ |
8397
|
8397
|
#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT
|
8398
|
8398
|
case 0x91:
|
8399
|
8399
|
/* it is the job of the application to `activate' GX handling, */
|
8400
|
|
- /* this is, calling any of the GX API functions on the current */
|
|
8400
|
+ /* that is, calling any of the GX API functions on the current */
|
8401
|
8401
|
/* font to select a variation instance */
|
8402
|
8402
|
if ( exc->face->blend )
|
8403
|
8403
|
Ins_GETVARIATION( exc, args );
|
|