freetype-commit
[Top][All Lists]
Advanced

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

[freetype2] hooks-via-module-property f40ef22: Instead of individual pro


From: Moazin Khatti
Subject: [freetype2] hooks-via-module-property f40ef22: Instead of individual properties. Just use one that
Date: Wed, 17 Jul 2019 15:09:01 -0400 (EDT)

branch: hooks-via-module-property
commit f40ef225a20b60ee6ec5a6f78a7af43e1a70840b
Author: Moazin Khatti <address@hidden>
Commit: Moazin Khatti <address@hidden>

    Instead of individual properties. Just use one that
    takes pointer to the hooks structure.
---
 include/freetype/svgrender.h | 10 ++++++++++
 src/svg/ftsvg.c              | 35 ++++++++---------------------------
 src/svg/svgtypes.c           | 10 ----------
 3 files changed, 18 insertions(+), 37 deletions(-)

diff --git a/include/freetype/svgrender.h b/include/freetype/svgrender.h
index 670e93f..b0932b4 100644
--- a/include/freetype/svgrender.h
+++ b/include/freetype/svgrender.h
@@ -121,6 +121,16 @@ FT_BEGIN_HEADER
   (*SVG_Lib_Get_Buffer_Size_Func)( FT_GlyphSlot  slot,
                                    FT_BBox       bbox );
 
+  typedef struct SVG_RendererHooks_
+  {
+    /* Api Hooks for OT-SVG Rendering */
+    SVG_Lib_Init_Func    init_svg;
+    SVG_Lib_Free_Func    free_svg;
+    SVG_Lib_Render_Func  render_svg;
+
+    SVG_Lib_Get_Buffer_Size_Func  get_buffer_size;
+  } SVG_RendererHooks;
+
   /**************************************************************************
    *
    * @struct:
diff --git a/src/svg/ftsvg.c b/src/svg/ftsvg.c
index a87675b..0486b74 100644
--- a/src/svg/ftsvg.c
+++ b/src/svg/ftsvg.c
@@ -88,14 +88,11 @@
     FT_Error      error    = FT_Err_Ok;
     SVG_Renderer  renderer = (SVG_Renderer)module;
 
-    if ( !ft_strcmp( property_name, "init_svg_hook" ) )
-      renderer->hooks.init_svg = (SVG_Lib_Init_Func)value;
-    else if ( !ft_strcmp( property_name, "free_svg_hook" ) )
-      renderer->hooks.free_svg = (SVG_Lib_Free_Func)value;
-    else if ( !ft_strcmp( property_name, "render_svg_hook" ) )
-      renderer->hooks.render_svg = (SVG_Lib_Render_Func)value;
-    else if ( !ft_strcmp( property_name, "get_buffer_size_hook" ) )
-      renderer->hooks.get_buffer_size = (SVG_Lib_Get_Buffer_Size_Func)value;
+    if ( !ft_strcmp( property_name, "svg_hooks" ) )
+    {
+      SVG_RendererHooks*  hooks = (SVG_RendererHooks*)value;
+      renderer->hooks = *hooks;
+    }
     else
     {
       error = FT_THROW( Missing_Property );
@@ -111,26 +108,10 @@
     FT_Error      error    = FT_Err_Ok;
     SVG_Renderer  renderer = (SVG_Renderer)module;
 
-    if ( !ft_strcmp( property_name, "init_svg_hook" ) )
-    {
-      SVG_Lib_Init_Func*  val = (SVG_Lib_Init_Func*)value;
-      *val = (SVG_Lib_Init_Func)renderer->hooks.init_svg;
-    }
-    else if ( !ft_strcmp( property_name, "free_svg_hook" ) )
-    {
-      SVG_Lib_Free_Func*  val = (SVG_Lib_Free_Func*)value;
-      *val = (SVG_Lib_Free_Func)renderer->hooks.free_svg;
-    }
-    else if ( !ft_strcmp( property_name, "render_svg_hook" ) )
-    {
-      SVG_Lib_Render_Func*  val = (SVG_Lib_Render_Func*)value;
-      *val = (SVG_Lib_Render_Func)renderer->hooks.render_svg;
-    }
-    else if ( !ft_strcmp( property_name, "get_buffer_size_hook" ) )
+    if ( !ft_strcmp( property_name, "svg_hooks" ) )
     {
-      SVG_Lib_Get_Buffer_Size_Func*  val;
-      val  = (SVG_Lib_Get_Buffer_Size_Func*)value;
-      *val = (SVG_Lib_Get_Buffer_Size_Func)renderer->hooks.render_svg;
+      SVG_RendererHooks*  hooks = (SVG_RendererHooks*)value;
+      *hooks = renderer->hooks;
     }
     else
     {
diff --git a/src/svg/svgtypes.c b/src/svg/svgtypes.c
index 4a32941..b82d51e 100644
--- a/src/svg/svgtypes.c
+++ b/src/svg/svgtypes.c
@@ -21,16 +21,6 @@
 #include FT_RENDER_H
 #include FT_SVG_RENDER_H
 
-  typedef struct SVG_RendererHooks_
-  {
-    /* Api Hooks for OT-SVG Rendering */
-    SVG_Lib_Init_Func    init_svg;
-    SVG_Lib_Free_Func    free_svg;
-    SVG_Lib_Render_Func  render_svg;
-
-    SVG_Lib_Get_Buffer_Size_Func  get_buffer_size;
-  } SVG_RendererHooks;
-
   typedef struct SVG_RendererRec_
   {
     FT_RendererRec     root;   /* This inherits FT_RendererRec */



reply via email to

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