From 1cd4a1d987caed99c67115c357e3088d6aeda47f Mon Sep 17 00:00:00 2001 From: Anuj Verma Date: Mon, 17 Aug 2020 16:11:56 +0530 Subject: [sdf] Add raster parameters structure. * src/sdf/ftsdf.h (SDF_Raster_Params): New structure. * src/sdf/sdf.c: Include source files in order to make a single object of the module. --- ChangeLog | 9 ++++++++ src/sdf/ftsdf.h | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++++ src/sdf/ftsdfrend.h | 1 + src/sdf/sdf.c | 5 +++++ 4 files changed, 77 insertions(+) diff --git a/ChangeLog b/ChangeLog index 3ca6fb288..35a11b0ee 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2020-08-17 Anuj Verma + + [sdf] Add raster parameters structure. + + * src/sdf/ftsdf.h (SDF_Raster_Params): New structure. + + * src/sdf/sdf.c: Include source files in order to make a single + object of the module. + 2020-08-17 Anuj Verma [sdf] Add 'sdf' renderer. diff --git a/src/sdf/ftsdf.h b/src/sdf/ftsdf.h index 8e52a68ab..eda86d9a4 100644 --- a/src/sdf/ftsdf.h +++ b/src/sdf/ftsdf.h @@ -2,6 +2,68 @@ #ifndef FTSDF_H_ #define FTSDF_H_ +#include +#include FT_CONFIG_CONFIG_H +#include + +/* 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_ */ diff --git a/src/sdf/ftsdfrend.h b/src/sdf/ftsdfrend.h index 00f02389c..33e93385f 100644 --- a/src/sdf/ftsdfrend.h +++ b/src/sdf/ftsdfrend.h @@ -50,6 +50,7 @@ FT_BEGIN_HEADER * @note: * All properties except `overlaps` are valid for both the 'sdf' and * 'bsdf' renderers. + * */ typedef struct SDF_Renderer_Module_ { diff --git a/src/sdf/sdf.c b/src/sdf/sdf.c index 93a4c65b0..78677873c 100644 --- a/src/sdf/sdf.c +++ b/src/sdf/sdf.c @@ -1,3 +1,8 @@ +#define FT_MAKE_OPTION_SINGLE_OBJECT + +#include "ftsdfrend.c" +#include "ftbsdf.c" +#include "ftsdf.c" /* END */ -- cgit v1.2.1