freetype-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[freetype2] master c6ec87e 07/30: [sdf] Add raster parameters structure.


From: Werner LEMBERG
Subject: [freetype2] master c6ec87e 07/30: [sdf] Add raster parameters structure.
Date: Thu, 24 Dec 2020 01:27:06 -0500 (EST)

branch: master
commit c6ec87ec482f47e1ab50394c3d88d80097165318
Author: Anuj Verma <anujv@iitbhilai.ac.in>
Commit: Werner Lemberg <wl@gnu.org>

    [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 b8d6f17..807d05c 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 8e52a68..eda86d9 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 00f0238..33e9338 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 93a4c65..7867787 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 */



reply via email to

[Prev in Thread] Current Thread [Next in Thread]