|
|
|
@ -2,6 +2,68 @@ |
|
|
|
|
#ifndef FTSDF_H_ |
|
|
|
|
#define FTSDF_H_ |
|
|
|
|
|
|
|
|
|
#include <ft2build.h> |
|
|
|
|
#include FT_CONFIG_CONFIG_H |
|
|
|
|
#include <freetype/ftimage.h> |
|
|
|
|
|
|
|
|
|
/* common properties and function */ |
|
|
|
|
#include "ftsdfcommon.h" |
|
|
|
|
|
|
|
|
|
FT_BEGIN_HEADER |
|
|
|
|
|
|
|
|
|
/**************************************************************************
|
|
|
|
|
* |
|
|
|
|
* @struct: |
|
|
|
|
* SDF_Raster_Params |
|
|
|
|
* |
|
|
|
|
* @description: |
|
|
|
|
* This struct must be passed to the raster render function |
|
|
|
|
* @FT_Raster_RenderFunc instead of @FT_Raster_Params because the |
|
|
|
|
* rasterizer requires some additional information to render properly.
|
|
|
|
|
* |
|
|
|
|
* @fields: |
|
|
|
|
* root :: |
|
|
|
|
* The native raster parameters structure. |
|
|
|
|
* |
|
|
|
|
* spread :: |
|
|
|
|
* This is an essential parameter/property required by the renderer.
|
|
|
|
|
* `spread` defines the maximum unsigned value that is present in the |
|
|
|
|
* final SDF output. For the default value check file |
|
|
|
|
* `ftsdfcommon.h`. |
|
|
|
|
* |
|
|
|
|
* flip_sign :: |
|
|
|
|
* By default positive values indicate positions inside of contours, |
|
|
|
|
* i.e., filled by a contour. If this property is true then that |
|
|
|
|
* output will be the opposite of the default, i.e., negative values |
|
|
|
|
* indicate positions inside of contours. |
|
|
|
|
* |
|
|
|
|
* flip_y :: |
|
|
|
|
* Setting this parameter to true maked the output image flipped |
|
|
|
|
* along the y-axis. |
|
|
|
|
* |
|
|
|
|
* overlaps :: |
|
|
|
|
* Set this to true to generate SDF for glyphs having overlapping |
|
|
|
|
* contours. The overlapping support is limited to glyphs that do not |
|
|
|
|
* have self-intersecting contours. Also, removing overlaps require a |
|
|
|
|
* considerable amount of extra memory; additionally, it will not work |
|
|
|
|
* if generating SDF from bitmap. |
|
|
|
|
* |
|
|
|
|
* @note: |
|
|
|
|
* All properties are valid for both the 'sdf' and 'bsdf' renderers; the |
|
|
|
|
* exception is `overlaps`, which gets ignored by the 'bsdf' renderer. |
|
|
|
|
* |
|
|
|
|
*/ |
|
|
|
|
typedef struct SDF_Raster_Params_ |
|
|
|
|
{ |
|
|
|
|
FT_Raster_Params root; |
|
|
|
|
FT_UInt spread; |
|
|
|
|
FT_Bool flip_sign; |
|
|
|
|
FT_Bool flip_y; |
|
|
|
|
FT_Bool overlaps; |
|
|
|
|
|
|
|
|
|
} SDF_Raster_Params; |
|
|
|
|
|
|
|
|
|
FT_END_HEADER |
|
|
|
|
|
|
|
|
|
#endif /* FTSDF_H_ */ |
|
|
|
|
|
|
|
|
|