summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMoazin Khatti <moazinkhatri@gmail.com>2019-07-18 00:05:49 +0500
committerMoazin Khatti <moazinkhatri@gmail.com>2019-07-18 00:05:49 +0500
commitf40ef225a20b60ee6ec5a6f78a7af43e1a70840b (patch)
treed7284420b535bb1859d277dfedee5853ffeab7cb
parentd94f52b0c698b7358210c13988ccaf6a8d25afc8 (diff)
downloadfreetype2-hooks-via-module-property.tar.gz
Instead of individual properties. Just use one thathooks-via-module-property
takes pointer to the hooks structure.
-rw-r--r--include/freetype/svgrender.h10
-rw-r--r--src/svg/ftsvg.c35
-rw-r--r--src/svg/svgtypes.c10
3 files changed, 18 insertions, 37 deletions
diff --git a/include/freetype/svgrender.h b/include/freetype/svgrender.h
index 670e93f83..b0932b4a2 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 a87675b46..0486b74c3 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 4a329411f..b82d51e6d 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 */