|
|
|
@ -5,7 +5,7 @@ |
|
|
|
|
/* FreeType glyph image formats and default raster interface */ |
|
|
|
|
/* (specification). */ |
|
|
|
|
/* */ |
|
|
|
|
/* Copyright 1996-2010, 2013 by */ |
|
|
|
|
/* Copyright 1996-2010, 2013, 2014 by */ |
|
|
|
|
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ |
|
|
|
|
/* */ |
|
|
|
|
/* This file is part of the FreeType project, and may only be used, */ |
|
|
|
@ -193,67 +193,14 @@ FT_BEGIN_HEADER |
|
|
|
|
} FT_Pixel_Mode; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*************************************************************************/ |
|
|
|
|
/* */ |
|
|
|
|
/* <Enum> */ |
|
|
|
|
/* ft_pixel_mode_xxx */ |
|
|
|
|
/* */ |
|
|
|
|
/* <Description> */ |
|
|
|
|
/* A list of deprecated constants. Use the corresponding */ |
|
|
|
|
/* @FT_Pixel_Mode values instead. */ |
|
|
|
|
/* */ |
|
|
|
|
/* <Values> */ |
|
|
|
|
/* ft_pixel_mode_none :: See @FT_PIXEL_MODE_NONE. */ |
|
|
|
|
/* ft_pixel_mode_mono :: See @FT_PIXEL_MODE_MONO. */ |
|
|
|
|
/* ft_pixel_mode_grays :: See @FT_PIXEL_MODE_GRAY. */ |
|
|
|
|
/* ft_pixel_mode_pal2 :: See @FT_PIXEL_MODE_GRAY2. */ |
|
|
|
|
/* ft_pixel_mode_pal4 :: See @FT_PIXEL_MODE_GRAY4. */ |
|
|
|
|
/* */ |
|
|
|
|
/* these constants are deprecated; use the corresponding `FT_Pixel_Mode' */ |
|
|
|
|
/* values instead. */ |
|
|
|
|
#define ft_pixel_mode_none FT_PIXEL_MODE_NONE |
|
|
|
|
#define ft_pixel_mode_mono FT_PIXEL_MODE_MONO |
|
|
|
|
#define ft_pixel_mode_grays FT_PIXEL_MODE_GRAY |
|
|
|
|
#define ft_pixel_mode_pal2 FT_PIXEL_MODE_GRAY2 |
|
|
|
|
#define ft_pixel_mode_pal4 FT_PIXEL_MODE_GRAY4 |
|
|
|
|
|
|
|
|
|
/* */ |
|
|
|
|
|
|
|
|
|
#if 0 |
|
|
|
|
|
|
|
|
|
/*************************************************************************/ |
|
|
|
|
/* */ |
|
|
|
|
/* <Enum> */ |
|
|
|
|
/* FT_Palette_Mode */ |
|
|
|
|
/* */ |
|
|
|
|
/* <Description> */ |
|
|
|
|
/* THIS TYPE IS DEPRECATED. DO NOT USE IT! */ |
|
|
|
|
/* */ |
|
|
|
|
/* An enumeration type to describe the format of a bitmap palette, */ |
|
|
|
|
/* used with ft_pixel_mode_pal4 and ft_pixel_mode_pal8. */ |
|
|
|
|
/* */ |
|
|
|
|
/* <Values> */ |
|
|
|
|
/* ft_palette_mode_rgb :: The palette is an array of 3-byte RGB */ |
|
|
|
|
/* records. */ |
|
|
|
|
/* */ |
|
|
|
|
/* ft_palette_mode_rgba :: The palette is an array of 4-byte RGBA */ |
|
|
|
|
/* records. */ |
|
|
|
|
/* */ |
|
|
|
|
/* <Note> */ |
|
|
|
|
/* As ft_pixel_mode_pal2, pal4 and pal8 are currently unused by */ |
|
|
|
|
/* FreeType, these types are not handled by the library itself. */ |
|
|
|
|
/* */ |
|
|
|
|
typedef enum FT_Palette_Mode_ |
|
|
|
|
{ |
|
|
|
|
ft_palette_mode_rgb = 0, |
|
|
|
|
ft_palette_mode_rgba, |
|
|
|
|
|
|
|
|
|
ft_palette_mode_max /* do not remove */ |
|
|
|
|
|
|
|
|
|
} FT_Palette_Mode; |
|
|
|
|
|
|
|
|
|
/* */ |
|
|
|
|
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*************************************************************************/ |
|
|
|
|
/* */ |
|
|
|
@ -381,7 +328,7 @@ FT_BEGIN_HEADER |
|
|
|
|
/* */ |
|
|
|
|
/* flags :: A set of bit flags used to characterize the outline */ |
|
|
|
|
/* and give hints to the scan-converter and hinter on */ |
|
|
|
|
/* how to convert/grid-fit it. See @FT_OUTLINE_FLAGS. */ |
|
|
|
|
/* how to convert/grid-fit it. See @FT_OUTLINE_XXX. */ |
|
|
|
|
/* */ |
|
|
|
|
/* <Note> */ |
|
|
|
|
/* The B/W rasterizer only checks bit~2 in the `tags' array for the */ |
|
|
|
@ -402,6 +349,8 @@ FT_BEGIN_HEADER |
|
|
|
|
|
|
|
|
|
} FT_Outline; |
|
|
|
|
|
|
|
|
|
/* */ |
|
|
|
|
|
|
|
|
|
/* Following limits must be consistent with */ |
|
|
|
|
/* FT_Outline.{n_contours,n_points} */ |
|
|
|
|
#define FT_OUTLINE_CONTOURS_MAX SHRT_MAX |
|
|
|
@ -411,7 +360,7 @@ FT_BEGIN_HEADER |
|
|
|
|
/*************************************************************************/ |
|
|
|
|
/* */ |
|
|
|
|
/* <Enum> */ |
|
|
|
|
/* FT_OUTLINE_FLAGS */ |
|
|
|
|
/* FT_OUTLINE_XXX */ |
|
|
|
|
/* */ |
|
|
|
|
/* <Description> */ |
|
|
|
|
/* A list of bit-field constants use for the flags in an outline's */ |
|
|
|
@ -492,24 +441,8 @@ FT_BEGIN_HEADER |
|
|
|
|
#define FT_OUTLINE_SINGLE_PASS 0x200 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*************************************************************************
|
|
|
|
|
* |
|
|
|
|
* @enum: |
|
|
|
|
* ft_outline_flags |
|
|
|
|
* |
|
|
|
|
* @description: |
|
|
|
|
* These constants are deprecated. Please use the corresponding |
|
|
|
|
* @FT_OUTLINE_FLAGS values. |
|
|
|
|
* |
|
|
|
|
* @values: |
|
|
|
|
* ft_outline_none :: See @FT_OUTLINE_NONE. |
|
|
|
|
* ft_outline_owner :: See @FT_OUTLINE_OWNER. |
|
|
|
|
* ft_outline_even_odd_fill :: See @FT_OUTLINE_EVEN_ODD_FILL. |
|
|
|
|
* ft_outline_reverse_fill :: See @FT_OUTLINE_REVERSE_FILL. |
|
|
|
|
* ft_outline_ignore_dropouts :: See @FT_OUTLINE_IGNORE_DROPOUTS. |
|
|
|
|
* ft_outline_high_precision :: See @FT_OUTLINE_HIGH_PRECISION. |
|
|
|
|
* ft_outline_single_pass :: See @FT_OUTLINE_SINGLE_PASS. |
|
|
|
|
*/ |
|
|
|
|
/* these constants are deprecated; use the corresponding */ |
|
|
|
|
/* `FT_OUTLINE_XXX' values instead */ |
|
|
|
|
#define ft_outline_none FT_OUTLINE_NONE |
|
|
|
|
#define ft_outline_owner FT_OUTLINE_OWNER |
|
|
|
|
#define ft_outline_even_odd_fill FT_OUTLINE_EVEN_ODD_FILL |
|
|
|
@ -796,22 +729,8 @@ FT_BEGIN_HEADER |
|
|
|
|
} FT_Glyph_Format; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*************************************************************************/ |
|
|
|
|
/* */ |
|
|
|
|
/* <Enum> */ |
|
|
|
|
/* ft_glyph_format_xxx */ |
|
|
|
|
/* */ |
|
|
|
|
/* <Description> */ |
|
|
|
|
/* A list of deprecated constants. Use the corresponding */ |
|
|
|
|
/* @FT_Glyph_Format values instead. */ |
|
|
|
|
/* */ |
|
|
|
|
/* <Values> */ |
|
|
|
|
/* ft_glyph_format_none :: See @FT_GLYPH_FORMAT_NONE. */ |
|
|
|
|
/* ft_glyph_format_composite :: See @FT_GLYPH_FORMAT_COMPOSITE. */ |
|
|
|
|
/* ft_glyph_format_bitmap :: See @FT_GLYPH_FORMAT_BITMAP. */ |
|
|
|
|
/* ft_glyph_format_outline :: See @FT_GLYPH_FORMAT_OUTLINE. */ |
|
|
|
|
/* ft_glyph_format_plotter :: See @FT_GLYPH_FORMAT_PLOTTER. */ |
|
|
|
|
/* */ |
|
|
|
|
/* these constants are deprecated; use the corresponding */ |
|
|
|
|
/* `FT_Glyph_Format' values instead. */ |
|
|
|
|
#define ft_glyph_format_none FT_GLYPH_FORMAT_NONE |
|
|
|
|
#define ft_glyph_format_composite FT_GLYPH_FORMAT_COMPOSITE |
|
|
|
|
#define ft_glyph_format_bitmap FT_GLYPH_FORMAT_BITMAP |
|
|
|
@ -856,6 +775,21 @@ FT_BEGIN_HEADER |
|
|
|
|
/* <Description> */ |
|
|
|
|
/* This section contains technical definitions. */ |
|
|
|
|
/* */ |
|
|
|
|
/* <Order> */ |
|
|
|
|
/* FT_Raster */ |
|
|
|
|
/* FT_Span */ |
|
|
|
|
/* FT_SpanFunc */ |
|
|
|
|
/* */ |
|
|
|
|
/* FT_Raster_Params */ |
|
|
|
|
/* FT_RASTER_FLAG_XXX */ |
|
|
|
|
/* */ |
|
|
|
|
/* FT_Raster_NewFunc */ |
|
|
|
|
/* FT_Raster_DoneFunc */ |
|
|
|
|
/* FT_Raster_ResetFunc */ |
|
|
|
|
/* FT_Raster_SetModeFunc */ |
|
|
|
|
/* FT_Raster_RenderFunc */ |
|
|
|
|
/* FT_Raster_Funcs */ |
|
|
|
|
/* */ |
|
|
|
|
/*************************************************************************/ |
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -865,8 +799,8 @@ FT_BEGIN_HEADER |
|
|
|
|
/* FT_Raster */ |
|
|
|
|
/* */ |
|
|
|
|
/* <Description> */ |
|
|
|
|
/* A handle (pointer) to a raster object. Each object can be used */ |
|
|
|
|
/* independently to convert an outline into a bitmap or pixmap. */ |
|
|
|
|
/* An opaque handle (pointer) to a raster object. Each object can be */ |
|
|
|
|
/* used independently to convert an outline into a bitmap or pixmap. */ |
|
|
|
|
/* */ |
|
|
|
|
typedef struct FT_RasterRec_* FT_Raster; |
|
|
|
|
|
|
|
|
@ -877,8 +811,8 @@ FT_BEGIN_HEADER |
|
|
|
|
/* FT_Span */ |
|
|
|
|
/* */ |
|
|
|
|
/* <Description> */ |
|
|
|
|
/* A structure used to model a single span of gray (or black) pixels */ |
|
|
|
|
/* when rendering a monochrome or anti-aliased bitmap. */ |
|
|
|
|
/* A structure used to model a single span of gray pixels when */ |
|
|
|
|
/* rendering an anti-aliased bitmap. */ |
|
|
|
|
/* */ |
|
|
|
|
/* <Fields> */ |
|
|
|
|
/* x :: The span's horizontal start position. */ |
|
|
|
@ -886,8 +820,7 @@ FT_BEGIN_HEADER |
|
|
|
|
/* len :: The span's length in pixels. */ |
|
|
|
|
/* */ |
|
|
|
|
/* coverage :: The span color/coverage, ranging from 0 (background) */ |
|
|
|
|
/* to 255 (foreground). Only used for anti-aliased */ |
|
|
|
|
/* rendering. */ |
|
|
|
|
/* to 255 (foreground). */ |
|
|
|
|
/* */ |
|
|
|
|
/* <Note> */ |
|
|
|
|
/* This structure is used by the span drawing callback type named */ |
|
|
|
@ -957,22 +890,7 @@ FT_BEGIN_HEADER |
|
|
|
|
/* FT_Raster_BitTest_Func */ |
|
|
|
|
/* */ |
|
|
|
|
/* <Description> */ |
|
|
|
|
/* THIS TYPE IS DEPRECATED. DO NOT USE IT. */ |
|
|
|
|
/* */ |
|
|
|
|
/* A function used as a call-back by the monochrome scan-converter */ |
|
|
|
|
/* to test whether a given target pixel is already set to the drawing */ |
|
|
|
|
/* `color'. These tests are crucial to implement drop-out control */ |
|
|
|
|
/* per-se the TrueType spec. */ |
|
|
|
|
/* */ |
|
|
|
|
/* <Input> */ |
|
|
|
|
/* y :: The pixel's y~coordinate. */ |
|
|
|
|
/* */ |
|
|
|
|
/* x :: The pixel's x~coordinate. */ |
|
|
|
|
/* */ |
|
|
|
|
/* user :: User-supplied data that is passed to the callback. */ |
|
|
|
|
/* */ |
|
|
|
|
/* <Return> */ |
|
|
|
|
/* 1~if the pixel is `set', 0~otherwise. */ |
|
|
|
|
/* Deprecated, unimplemented. */ |
|
|
|
|
/* */ |
|
|
|
|
typedef int |
|
|
|
|
(*FT_Raster_BitTest_Func)( int y, |
|
|
|
@ -986,21 +904,7 @@ FT_BEGIN_HEADER |
|
|
|
|
/* FT_Raster_BitSet_Func */ |
|
|
|
|
/* */ |
|
|
|
|
/* <Description> */ |
|
|
|
|
/* THIS TYPE IS DEPRECATED. DO NOT USE IT. */ |
|
|
|
|
/* */ |
|
|
|
|
/* A function used as a call-back by the monochrome scan-converter */ |
|
|
|
|
/* to set an individual target pixel. This is crucial to implement */ |
|
|
|
|
/* drop-out control according to the TrueType specification. */ |
|
|
|
|
/* */ |
|
|
|
|
/* <Input> */ |
|
|
|
|
/* y :: The pixel's y~coordinate. */ |
|
|
|
|
/* */ |
|
|
|
|
/* x :: The pixel's x~coordinate. */ |
|
|
|
|
/* */ |
|
|
|
|
/* user :: User-supplied data that is passed to the callback. */ |
|
|
|
|
/* */ |
|
|
|
|
/* <Return> */ |
|
|
|
|
/* 1~if the pixel is `set', 0~otherwise. */ |
|
|
|
|
/* Deprecated, unimplemented. */ |
|
|
|
|
/* */ |
|
|
|
|
typedef void |
|
|
|
|
(*FT_Raster_BitSet_Func)( int y, |
|
|
|
@ -1034,8 +938,8 @@ FT_BEGIN_HEADER |
|
|
|
|
/* pixmap's buffer _must_ be zeroed before */ |
|
|
|
|
/* rendering. */ |
|
|
|
|
/* */ |
|
|
|
|
/* Note that for now, direct rendering is */ |
|
|
|
|
/* only possible with anti-aliased glyphs. */ |
|
|
|
|
/* Direct rendering is only possible with */ |
|
|
|
|
/* anti-aliased glyphs. */ |
|
|
|
|
/* */ |
|
|
|
|
/* FT_RASTER_FLAG_CLIP :: This flag is only used in direct */ |
|
|
|
|
/* rendering mode. If set, the output will */ |
|
|
|
@ -1053,7 +957,8 @@ FT_BEGIN_HEADER |
|
|
|
|
#define FT_RASTER_FLAG_DIRECT 0x2 |
|
|
|
|
#define FT_RASTER_FLAG_CLIP 0x4 |
|
|
|
|
|
|
|
|
|
/* deprecated */ |
|
|
|
|
/* these constants are deprecated; use the corresponding */ |
|
|
|
|
/* `FT_RASTER_FLAG_XXX' values instead */ |
|
|
|
|
#define ft_raster_flag_default FT_RASTER_FLAG_DEFAULT |
|
|
|
|
#define ft_raster_flag_aa FT_RASTER_FLAG_AA |
|
|
|
|
#define ft_raster_flag_direct FT_RASTER_FLAG_DIRECT |
|
|
|
@ -1079,11 +984,11 @@ FT_BEGIN_HEADER |
|
|
|
|
/* */ |
|
|
|
|
/* gray_spans :: The gray span drawing callback. */ |
|
|
|
|
/* */ |
|
|
|
|
/* black_spans :: The black span drawing callback. UNIMPLEMENTED! */ |
|
|
|
|
/* black_spans :: Unused. */ |
|
|
|
|
/* */ |
|
|
|
|
/* bit_test :: The bit test callback. UNIMPLEMENTED! */ |
|
|
|
|
/* bit_test :: Unused. */ |
|
|
|
|
/* */ |
|
|
|
|
/* bit_set :: The bit set callback. UNIMPLEMENTED! */ |
|
|
|
|
/* bit_set :: Unused. */ |
|
|
|
|
/* */ |
|
|
|
|
/* user :: User-supplied data that is passed to each drawing */ |
|
|
|
|
/* callback. */ |
|
|
|
@ -1100,15 +1005,9 @@ FT_BEGIN_HEADER |
|
|
|
|
/* */ |
|
|
|
|
/* If the @FT_RASTER_FLAG_DIRECT bit flag is set in `flags', the */ |
|
|
|
|
/* raster will call the `gray_spans' callback to draw gray pixel */ |
|
|
|
|
/* spans, in the case of an aa glyph bitmap, it will call */ |
|
|
|
|
/* `black_spans', and `bit_test' and `bit_set' in the case of a */ |
|
|
|
|
/* monochrome bitmap. This allows direct composition over a */ |
|
|
|
|
/* pre-existing bitmap through user-provided callbacks to perform the */ |
|
|
|
|
/* span drawing/composition. */ |
|
|
|
|
/* */ |
|
|
|
|
/* Note that the `bit_test' and `bit_set' callbacks are required when */ |
|
|
|
|
/* rendering a monochrome bitmap, as they are crucial to implement */ |
|
|
|
|
/* correct drop-out control as defined in the TrueType specification. */ |
|
|
|
|
/* spans. This allows direct composition over a pre-existing bitmap */ |
|
|
|
|
/* through user-provided callbacks to perform the span drawing and */ |
|
|
|
|
/* composition. Not supported by the monochrome rasterizer. */ |
|
|
|
|
/* */ |
|
|
|
|
typedef struct FT_Raster_Params_ |
|
|
|
|
{ |
|
|
|
@ -1116,9 +1015,9 @@ FT_BEGIN_HEADER |
|
|
|
|
const void* source; |
|
|
|
|
int flags; |
|
|
|
|
FT_SpanFunc gray_spans; |
|
|
|
|
FT_SpanFunc black_spans; /* doesn't work! */ |
|
|
|
|
FT_Raster_BitTest_Func bit_test; /* doesn't work! */ |
|
|
|
|
FT_Raster_BitSet_Func bit_set; /* doesn't work! */ |
|
|
|
|
FT_SpanFunc black_spans; /* unused */ |
|
|
|
|
FT_Raster_BitTest_Func bit_test; /* unused */ |
|
|
|
|
FT_Raster_BitSet_Func bit_set; /* unused */ |
|
|
|
|
void* user; |
|
|
|
|
FT_BBox clip_box; |
|
|
|
|
|
|
|
|
@ -1305,7 +1204,6 @@ FT_BEGIN_HEADER |
|
|
|
|
|
|
|
|
|
} FT_Raster_Funcs; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* */ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|