|
|
|
@ -1934,7 +1934,7 @@ FT_BEGIN_HEADER |
|
|
|
|
/* glyph_index :: The index of the glyph in the font file. */ |
|
|
|
|
/* */ |
|
|
|
|
/* load_flags :: A flag indicating what to load for this glyph. The */ |
|
|
|
|
/* FT_LOAD_XXX constants can be used to control the */ |
|
|
|
|
/* @FT_LOAD_XXX constants can be used to control the */ |
|
|
|
|
/* glyph loading process (e.g., whether the outline */ |
|
|
|
|
/* should be scaled, whether to load bitmaps or not, */ |
|
|
|
|
/* whether to hint the outline, etc). */ |
|
|
|
@ -1975,7 +1975,7 @@ FT_BEGIN_HEADER |
|
|
|
|
/* current charmap used in the face. */ |
|
|
|
|
/* */ |
|
|
|
|
/* load_flags :: A flag indicating what to load for this glyph. The */ |
|
|
|
|
/* FT_LOAD_XXX constants can be used to control the */ |
|
|
|
|
/* @FT_LOAD_XXX constants can be used to control the */ |
|
|
|
|
/* glyph loading process (e.g., whether the outline */ |
|
|
|
|
/* should be scaled, whether to load bitmaps or not, */ |
|
|
|
|
/* whether to hint the outline, etc). */ |
|
|
|
@ -2002,133 +2002,127 @@ FT_BEGIN_HEADER |
|
|
|
|
FT_Int32 load_flags ); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/****************************************************************************
|
|
|
|
|
* |
|
|
|
|
* @enum: FT_LOAD_XXX |
|
|
|
|
* |
|
|
|
|
* @description: |
|
|
|
|
* a list of bit-field constants, used with @FT_Load_Glyph to indicate |
|
|
|
|
* what kind of operations to perform during glyph loading |
|
|
|
|
* |
|
|
|
|
* @values: |
|
|
|
|
* FT_LOAD_DEFAULT :: |
|
|
|
|
* corresponding to 0, this value is used a default glyph load. In this |
|
|
|
|
* case, the following will happen: |
|
|
|
|
* |
|
|
|
|
* 1/ FreeType will look for a bitmap for the glyph corresponding to |
|
|
|
|
* the face's current size. If one is found, the function returns. |
|
|
|
|
* the bitmap data can be accessed from the glyph slot (see note |
|
|
|
|
* below) |
|
|
|
|
* |
|
|
|
|
* 2/ If no embedded bitmap is searched or found, FreeType looks for |
|
|
|
|
* a scalable outline. If one is found, it is loaded from the font |
|
|
|
|
* file, scaled to device pixels, then "hinted" to the pixel grid |
|
|
|
|
* in order to optimize it. the outline data can be accessed from |
|
|
|
|
* the glyph slot (see note below) |
|
|
|
|
* |
|
|
|
|
* Note that by default, the glyph loader doesn't render outlines into |
|
|
|
|
* bitmaps. the following flags are used to modify this default behaviour |
|
|
|
|
* to more specific and useful cases. |
|
|
|
|
* |
|
|
|
|
* FT_LOAD_NO_SCALE :: |
|
|
|
|
* indicates that the vector outline being loaded should not be scaled |
|
|
|
|
* to 26.6 fractional pixels, but kept in font units. Note that this |
|
|
|
|
* also disables hinting and the loading of embedded bitmaps. You should |
|
|
|
|
* only use it when you want to retrieve the original glyph outlines |
|
|
|
|
* in font units. |
|
|
|
|
* |
|
|
|
|
* FT_LOAD_NO_HINTING :: |
|
|
|
|
* indicates that the glyph outlines should not be hinted after their |
|
|
|
|
* scaling to device pixels. This generally generates "blurrier" glyphs |
|
|
|
|
* in anti-aliased modes. |
|
|
|
|
* |
|
|
|
|
* this flag is ignored if @FT_LOAD_NO_SCALE is set |
|
|
|
|
* |
|
|
|
|
* FT_LOAD_RENDER :: |
|
|
|
|
* indicates that the glyph outline should be rendered immediately into |
|
|
|
|
* a bitmap before the glyph loader returns. By default, the glyph is |
|
|
|
|
* rendered for the @FT_RENDER_MODE_NORMAL mode, which corresponds to |
|
|
|
|
* 8-bit anti-aliased bitmaps using 256 opacity levels. You can use |
|
|
|
|
* either @FT_LOAD_TARGET_MONO or @FT_LOAD_MONOCHROME to render |
|
|
|
|
* 1-bit monochrome bitmaps |
|
|
|
|
* |
|
|
|
|
* This flag is ignored if @FT_LOAD_NO_SCALE is set |
|
|
|
|
* |
|
|
|
|
* |
|
|
|
|
* FT_LOAD_NO_BITMAP :: |
|
|
|
|
* indicates that you do not want to look for bitmaps when loading |
|
|
|
|
* the glyph. Only scalable outlines will be loaded when available, |
|
|
|
|
* and scaled/hinted/rendered depending on other bit flags |
|
|
|
|
* |
|
|
|
|
* this does not prevent you from rendering outlines to bitmaps |
|
|
|
|
* with @FT_LOAD_RENDER however. |
|
|
|
|
* |
|
|
|
|
* FT_LOAD_VERTICAL_LAYOUT :: |
|
|
|
|
* indicates that the glyph image should be prepared for vertical |
|
|
|
|
* text layout. This basically means that 'face.glyph.advance' will |
|
|
|
|
* correspond to the vertical advance height (instead of the default |
|
|
|
|
* horizontal advance width), and that the glyph image will be |
|
|
|
|
* translated to match the vertical bearings positions |
|
|
|
|
* |
|
|
|
|
* FT_LOAD_FORCE_AUTOHINT :: |
|
|
|
|
* indicates that you want to force the use of the FreeType auto-hinter |
|
|
|
|
* when a glyph outline is loaded. You shouldn't need this in a typical |
|
|
|
|
* application, since it's mostly used to experiment with its algorithm |
|
|
|
|
* |
|
|
|
|
* FT_LOAD_CROP_BITMAP :: |
|
|
|
|
* indicates that the glyph loader should try to crop the bitmap (i.e. |
|
|
|
|
* remove all space around its black bits) when loading it. This is |
|
|
|
|
* only useful when loading embedded bitmaps in certain fonts, since |
|
|
|
|
* bitmaps rendered with @FT_LOAD_RENDER are always cropped by default |
|
|
|
|
* |
|
|
|
|
* FT_LOAD_PEDANTIC :: |
|
|
|
|
* indicates that the glyph loader should perform pedantic verifications |
|
|
|
|
* during glyph loading. This is mostly used to detect broken glyphs in |
|
|
|
|
* fonts. By default, FreeType will always try to deal with such cases. |
|
|
|
|
* |
|
|
|
|
* FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH :: |
|
|
|
|
* indicates that the glyph loader should ignore the global advance |
|
|
|
|
* width defined in the font. As far as we know, this is only used by the |
|
|
|
|
* X-TrueType font server, in order to deal correctly with the incorrect |
|
|
|
|
* metrics contained in DynaLab's TrueType CJK fonts. |
|
|
|
|
* |
|
|
|
|
* FT_LOAD_NO_RECURSE :: |
|
|
|
|
* this flag is only used internally. It merely indicates that the glyph |
|
|
|
|
* loader should not load composite glyphs recursively. Instead, it should |
|
|
|
|
* set the 'num_subglyph' and 'subglyphs' values of the glyph slot |
|
|
|
|
* accordingly, and set "glyph->format" to @FT_GLYPH_FORMAT_COMPOSITE |
|
|
|
|
* |
|
|
|
|
* the description of sub-glyphs is not available to client applications |
|
|
|
|
* for now |
|
|
|
|
* |
|
|
|
|
* FT_LOAD_IGNORE_TRANSFORM :: |
|
|
|
|
* indicates that the glyph loader should not try to transform the |
|
|
|
|
* loaded glyph image. This doesn't prevent scaling/hinting/rendering |
|
|
|
|
* |
|
|
|
|
* FT_LOAD_MONOCHROME :: |
|
|
|
|
* this flag is used with @FT_LOAD_RENDER to indicate that you want |
|
|
|
|
* to render a 1-bit monochrome glyph bitmap from a vectorial outline. |
|
|
|
|
* |
|
|
|
|
* note that this has no effect on the hinting algorithm used by the |
|
|
|
|
* glyph loader. You'd better use @FT_LOAD_TARGET_MONO if you want to |
|
|
|
|
* render monochrome-optimized glyph images instead. |
|
|
|
|
* |
|
|
|
|
* FT_LOAD_LINEAR_DESIGN :: |
|
|
|
|
* indicates that the function should return the linearly scaled metrics |
|
|
|
|
* expressed in original font units, instead of the default 16.16 pixel |
|
|
|
|
* values |
|
|
|
|
* |
|
|
|
|
* FT_LOAD_NO_AUTOHINT :: |
|
|
|
|
* indicates that the auto-hinter should never be used to hint glyph |
|
|
|
|
* outlines. This doesn't prevent native format-specific hinters from |
|
|
|
|
* being used. This can be important for certain fonts where un-hinted |
|
|
|
|
* output is better than auto-hinted one. |
|
|
|
|
* |
|
|
|
|
* |
|
|
|
|
* |
|
|
|
|
* |
|
|
|
|
* |
|
|
|
|
*/ |
|
|
|
|
/****************************************************************************
|
|
|
|
|
* |
|
|
|
|
* @enum: |
|
|
|
|
* FT_LOAD_XXX |
|
|
|
|
* |
|
|
|
|
* @description: |
|
|
|
|
* A list of bit-field constants, used with @FT_Load_Glyph to indicate |
|
|
|
|
* what kind of operations to perform during glyph loading. |
|
|
|
|
* |
|
|
|
|
* @values: |
|
|
|
|
* FT_LOAD_DEFAULT :: |
|
|
|
|
* Corresponding to 0, this value is used a default glyph load. In this |
|
|
|
|
* case, the following will happen: |
|
|
|
|
* |
|
|
|
|
* 1. FreeType looks for a bitmap for the glyph corresponding to the |
|
|
|
|
* face's current size. If one is found, the function returns. The |
|
|
|
|
* bitmap data can be accessed from the glyph slot (see note below). |
|
|
|
|
* |
|
|
|
|
* 2. If no embedded bitmap is searched or found, FreeType looks for a |
|
|
|
|
* scalable outline. If one is found, it is loaded from the font |
|
|
|
|
* file, scaled to device pixels, then "hinted" to the pixel grid in |
|
|
|
|
* order to optimize it. The outline data can be accessed from the |
|
|
|
|
* glyph slot (see note below). |
|
|
|
|
* |
|
|
|
|
* Note that by default, the glyph loader doesn't render outlines into |
|
|
|
|
* bitmaps. The following flags are used to modify this default |
|
|
|
|
* behaviour to more specific and useful cases. |
|
|
|
|
* |
|
|
|
|
* FT_LOAD_NO_SCALE :: |
|
|
|
|
* Don't scale the vector outline being loaded to 26.6 fractional |
|
|
|
|
* pixels, but kept in font units. Note that this also disables |
|
|
|
|
* hinting and the loading of embedded bitmaps. You should only use it |
|
|
|
|
* when you want to retrieve the original glyph outlines in font units. |
|
|
|
|
* |
|
|
|
|
* FT_LOAD_NO_HINTING :: |
|
|
|
|
* Don't hint glyph outlines after their scaling to device pixels.
|
|
|
|
|
* This generally generates "blurrier" glyphs in anti-aliased modes. |
|
|
|
|
* |
|
|
|
|
* This flag is ignored if @FT_LOAD_NO_SCALE is set. |
|
|
|
|
* |
|
|
|
|
* FT_LOAD_RENDER :: |
|
|
|
|
* Render the glyph outline immediately into a bitmap before the glyph |
|
|
|
|
* loader returns. By default, the glyph is rendered for the |
|
|
|
|
* @FT_RENDER_MODE_NORMAL mode, which corresponds to 8-bit anti-aliased |
|
|
|
|
* bitmaps using 256 opacity levels. You can use either |
|
|
|
|
* @FT_LOAD_TARGET_MONO or @FT_LOAD_MONOCHROME to render 1-bit |
|
|
|
|
* monochrome bitmaps. |
|
|
|
|
* |
|
|
|
|
* This flag is ignored if @FT_LOAD_NO_SCALE is set. |
|
|
|
|
* |
|
|
|
|
* FT_LOAD_NO_BITMAP :: |
|
|
|
|
* Don't look for bitmaps when loading the glyph. Only scalable |
|
|
|
|
* outlines will be loaded when available, and scaled, hinted, or |
|
|
|
|
* rendered depending on other bit flags. |
|
|
|
|
* |
|
|
|
|
* This does not prevent you from rendering outlines to bitmaps |
|
|
|
|
* with @FT_LOAD_RENDER, however. |
|
|
|
|
* |
|
|
|
|
* FT_LOAD_VERTICAL_LAYOUT :: |
|
|
|
|
* Prepare the glyph image for vertical text layout. This basically |
|
|
|
|
* means that `face.glyph.advance' will correspond to the vertical |
|
|
|
|
* advance height (instead of the default horizontal advance width), |
|
|
|
|
* and that the glyph image will be translated to match the vertical |
|
|
|
|
* bearings positions. |
|
|
|
|
* |
|
|
|
|
* FT_LOAD_FORCE_AUTOHINT :: |
|
|
|
|
* Force the use of the FreeType auto-hinter when a glyph outline is |
|
|
|
|
* loaded. You shouldn't need this in a typical application, since it |
|
|
|
|
* is mostly used to experiment with its algorithm. |
|
|
|
|
* |
|
|
|
|
* FT_LOAD_CROP_BITMAP :: |
|
|
|
|
* Indicates that the glyph loader should try to crop the bitmap (i.e., |
|
|
|
|
* remove all space around its black bits) when loading it. This is |
|
|
|
|
* only useful when loading embedded bitmaps in certain fonts, since |
|
|
|
|
* bitmaps rendered with @FT_LOAD_RENDER are always cropped by default. |
|
|
|
|
* |
|
|
|
|
* FT_LOAD_PEDANTIC :: |
|
|
|
|
* Indicates that the glyph loader should perform pedantic |
|
|
|
|
* verifications during glyph loading, rejecting invalid fonts. This |
|
|
|
|
* is mostly used to detect broken glyphs in fonts. By default, |
|
|
|
|
* FreeType tries to handle broken fonts also. |
|
|
|
|
* |
|
|
|
|
* FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH :: |
|
|
|
|
* Indicates that the glyph loader should ignore the global advance |
|
|
|
|
* width defined in the font. As far as we know, this is only used by |
|
|
|
|
* the X-TrueType font server, in order to deal correctly with the |
|
|
|
|
* incorrect metrics contained in DynaLab's TrueType CJK fonts. |
|
|
|
|
* |
|
|
|
|
* FT_LOAD_NO_RECURSE :: |
|
|
|
|
* This flag is only used internally. It merely indicates that the |
|
|
|
|
* glyph loader should not load composite glyphs recursively. Instead, |
|
|
|
|
* it should set the `num_subglyph' and `subglyphs' values of the glyph |
|
|
|
|
* slot accordingly, and set "glyph->format" to |
|
|
|
|
* @FT_GLYPH_FORMAT_COMPOSITE. |
|
|
|
|
* |
|
|
|
|
* The description of sub-glyphs is not available to client |
|
|
|
|
* applications for now. |
|
|
|
|
* |
|
|
|
|
* FT_LOAD_IGNORE_TRANSFORM :: |
|
|
|
|
* Indicates that the glyph loader should not try to transform the |
|
|
|
|
* loaded glyph image. This doesn't prevent scaling, hinting, or |
|
|
|
|
* rendering. |
|
|
|
|
* |
|
|
|
|
* FT_LOAD_MONOCHROME :: |
|
|
|
|
* This flag is used with @FT_LOAD_RENDER to indicate that you want |
|
|
|
|
* to render a 1-bit monochrome glyph bitmap from a vectorial outline. |
|
|
|
|
* |
|
|
|
|
* Note that this has no effect on the hinting algorithm used by the |
|
|
|
|
* glyph loader. You should better use @FT_LOAD_TARGET_MONO if you |
|
|
|
|
* want to render monochrome-optimized glyph images instead. |
|
|
|
|
* |
|
|
|
|
* FT_LOAD_LINEAR_DESIGN :: |
|
|
|
|
* Return the linearly scaled metrics expressed in original font units |
|
|
|
|
* instead of the default 16.16 pixel values. |
|
|
|
|
* |
|
|
|
|
* FT_LOAD_NO_AUTOHINT :: |
|
|
|
|
* Indicates that the auto-hinter should never be used to hint glyph |
|
|
|
|
* outlines. This doesn't prevent native format-specific hinters from |
|
|
|
|
* being used. This can be important for certain fonts where unhinted |
|
|
|
|
* output is better than auto-hinted one. |
|
|
|
|
*/ |
|
|
|
|
#define FT_LOAD_NO_SCALE 0x1 |
|
|
|
|
#define FT_LOAD_NO_HINTING 0x2 |
|
|
|
|
#define FT_LOAD_RENDER 0x4 |
|
|
|
|