Memory allocation for `state' of renderer should be performed

on the SVG port side not the FT size. Minor doc fixes.
This commit is contained in:
Moazin Khatti 2019-07-10 13:58:59 +05:00
parent cf44c0cbdd
commit fbdd9f9ba3
4 changed files with 9 additions and 42 deletions

View File

@ -39,7 +39,7 @@ FT_BEGIN_HEADER
* A callback used to initiate the SVG Rendering port
*
* @input:
* library::
* library ::
* A instance of library. This is required to initialize the renderer's
* state which will be held in the library.
*
@ -62,7 +62,7 @@ FT_BEGIN_HEADER
* shall do all cleanups that the SVG Rendering port wants to do.
*
* @input:
* library::
* library ::
* A instance of library. This is required to free the renderer's state
* which will be held in the library.
*/
@ -95,22 +95,6 @@ FT_BEGIN_HEADER
(*SVG_Lib_Render)( FT_GlyphSlot slot,
FT_BBox outline_bbox);
/**************************************************************************
*
* @functype:
* SVG_Lib_Get_State_Size
*
* @description:
* A callback which is called to query the size of the state stucture.
* This is used for allocating the state structure in library.
*
* @return:
* Size of the state structure in bytes.
*/
typedef FT_UInt
(*SVG_Lib_Get_State_Size)( );
/**************************************************************************
*
* @functype:
@ -149,26 +133,22 @@ FT_BEGIN_HEADER
* Interface.
*
* @input:
* module::
* module ::
* FT_Module instance.
*
* init_hook::
* init_hook ::
* A function pointer of the type `SVG_Lib_Init'. Read the documentation
* of `SVG_Lib_Init'
*
* free_hook::
* free_hook ::
* A function pointer of the type `SVG_Lib_Free'. Read the documentation
* of `SVG_Lib_Free'.
*
* render_hook::
* render_hook ::
* A function pointer of the type `SVG_Lib_Render'. Read the
* documentation of `SVG_Lib_Render'.
*
* get_state_size::
* A function pointer of the type `SVG_Lib_Get_State_Size'. Read the
* documentation of `SVG_Lib_Get_State_Size'.
*
* get_buffer_size::
* get_buffer_size ::
* A function pointer of the type `SVG_Lib_Get_Buffer_Size'. Read the
* documentation of `SVG_Lib_Get_Buffer_Size'.
*
@ -181,7 +161,6 @@ FT_BEGIN_HEADER
SVG_Lib_Init init_hook,
SVG_Lib_Free free_hook,
SVG_Lib_Render render_hook,
SVG_Lib_Get_State_Size get_state_size,
SVG_Lib_Get_Buffer_Size get_buffer_size );
/**************************************************************************
@ -194,7 +173,7 @@ FT_BEGIN_HEADER
* rendering library hooks.
*
* @fields:
* set_hooks::
* set_hooks ::
* A function that can be called to set the hooks.
*
* @return:
@ -213,7 +192,6 @@ FT_BEGIN_HEADER
SVG_Lib_Init init_hook,
SVG_Lib_Free free_hook,
SVG_Lib_Render render_hook,
SVG_Lib_Get_State_Size get_state_size,
SVG_Lib_Get_Buffer_Size get_buffer_size );
/**************************************************************************

View File

@ -5596,7 +5596,6 @@
SVG_Lib_Init init_hook,
SVG_Lib_Free free_hook,
SVG_Lib_Render render_hook,
SVG_Lib_Get_State_Size get_state_size,
SVG_Lib_Get_Buffer_Size get_buffer_size )
{
FT_Module renderer;
@ -5614,7 +5613,6 @@
init_hook,
free_hook,
render_hook,
get_state_size,
get_buffer_size );
return FT_Err_Ok;
}

View File

@ -36,10 +36,8 @@
ft_svg_done( SVG_Renderer svg_module )
{
FT_Library library = svg_module->root.root.library;
FT_Memory memory = library->memory;
if ( svg_module->loaded == TRUE )
svg_module->hooks.svg_lib_free( library );
FT_FREE( library->svg_renderer_state );
svg_module->loaded = FALSE;
}
@ -54,17 +52,13 @@
FT_Memory memory = library->memory;
FT_BBox outline_bbox;
FT_Error error;
FT_ULong size_image_buffer;
SVG_RendererHooks hooks = svg_renderer->hooks;
unsigned long size_image_buffer;
if ( svg_renderer->loaded == FALSE )
{
FT_MEM_ALLOC( library->svg_renderer_state,
hooks.svg_lib_get_state_size() );
if ( error )
return error;
error = hooks.svg_lib_init( library );
svg_renderer->loaded = TRUE;
}
@ -88,7 +82,6 @@
SVG_Lib_Init init_hook,
SVG_Lib_Free free_hook,
SVG_Lib_Render render_hook,
SVG_Lib_Get_State_Size get_state_size,
SVG_Lib_Get_Buffer_Size get_buffer_size )
{
SVG_Renderer renderer;
@ -98,7 +91,6 @@
renderer->hooks.svg_lib_free = free_hook;
renderer->hooks.svg_lib_render = render_hook;
renderer->hooks.svg_lib_get_state_size = get_state_size;
renderer->hooks.svg_lib_get_buffer_size = get_buffer_size;
return FT_Err_Ok;

View File

@ -28,7 +28,6 @@
SVG_Lib_Free svg_lib_free;
SVG_Lib_Render svg_lib_render;
SVG_Lib_Get_State_Size svg_lib_get_state_size;
SVG_Lib_Get_Buffer_Size svg_lib_get_buffer_size;
} SVG_RendererHooks;