summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnuj Verma <anujv@iitbhilai.ac.in>2020-08-17 16:11:56 +0530
committerWerner Lemberg <wl@gnu.org>2020-12-22 09:03:26 +0100
commit1cd4a1d987caed99c67115c357e3088d6aeda47f (patch)
tree827884a37dde36af9bea5abb60ca5e34943bdd06
parent94e3084beabf9c84b262684228adfbd1c62005cb (diff)
downloadfreetype2-1cd4a1d987caed99c67115c357e3088d6aeda47f.tar.gz
[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.
-rw-r--r--ChangeLog9
-rw-r--r--src/sdf/ftsdf.h62
-rw-r--r--src/sdf/ftsdfrend.h1
-rw-r--r--src/sdf/sdf.c5
4 files changed, 77 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 3ca6fb288..35a11b0ee 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,14 @@
2020-08-17 Anuj Verma <anujv@iitbhilai.ac.in>
+ [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 <anujv@iitbhilai.ac.in>
+
[sdf] Add 'sdf' renderer.
* src/sdf/ftsdf.c: Add 'sdf' renderer along with its interface
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 <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_ */
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 */