|
|
|
@ -22,22 +22,26 @@ |
|
|
|
|
#include "rastpic.h" |
|
|
|
|
#include "rasterrs.h" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef FT_CONFIG_OPTION_PIC |
|
|
|
|
|
|
|
|
|
/* forward declaration of PIC init functions from ftraster.c */ |
|
|
|
|
void |
|
|
|
|
FT_Init_Class_ft_standard_raster( FT_Raster_Funcs* funcs ); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void |
|
|
|
|
ft_raster1_renderer_class_pic_free( FT_Library library ) |
|
|
|
|
{ |
|
|
|
|
FT_PIC_Container* pic_container = &library->pic_container; |
|
|
|
|
FT_Memory memory = library->memory; |
|
|
|
|
FT_Memory memory = library->memory; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if ( pic_container->raster ) |
|
|
|
|
{ |
|
|
|
|
RasterPIC* container = (RasterPIC*)pic_container->raster; |
|
|
|
|
RasterPIC* container = (RasterPIC*)pic_container->raster; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if ( --container->ref_count ) |
|
|
|
|
return; |
|
|
|
|
FT_FREE( container ); |
|
|
|
@ -49,14 +53,14 @@ |
|
|
|
|
FT_Error |
|
|
|
|
ft_raster1_renderer_class_pic_init( FT_Library library ) |
|
|
|
|
{ |
|
|
|
|
FT_PIC_Container* pic_container = &library->pic_container; |
|
|
|
|
FT_Error error = FT_Err_Ok; |
|
|
|
|
RasterPIC* container = NULL; |
|
|
|
|
FT_Memory memory = library->memory; |
|
|
|
|
FT_PIC_Container* pic_container = &library->pic_container; |
|
|
|
|
FT_Error error = FT_Err_Ok; |
|
|
|
|
RasterPIC* container = NULL; |
|
|
|
|
FT_Memory memory = library->memory; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* since this function also serve raster5 renderer,
|
|
|
|
|
it implements reference counting */ |
|
|
|
|
/* since this function also serves raster5 renderer, */ |
|
|
|
|
/* it implements reference counting */ |
|
|
|
|
if ( pic_container->raster ) |
|
|
|
|
{ |
|
|
|
|
((RasterPIC*)pic_container->raster)->ref_count++; |
|
|
|
@ -68,16 +72,17 @@ |
|
|
|
|
return error; |
|
|
|
|
FT_MEM_SET( container, 0, sizeof ( *container ) ); |
|
|
|
|
pic_container->raster = container; |
|
|
|
|
|
|
|
|
|
container->ref_count = 1; |
|
|
|
|
|
|
|
|
|
/* initialize pointer table - this is how the module usually expects this data */ |
|
|
|
|
/* initialize pointer table - */ |
|
|
|
|
/* this is how the module usually expects this data */ |
|
|
|
|
FT_Init_Class_ft_standard_raster( &container->ft_standard_raster ); |
|
|
|
|
/*Exit:*/ |
|
|
|
|
if( error ) |
|
|
|
|
ft_raster1_renderer_class_pic_free( library ); |
|
|
|
|
|
|
|
|
|
return error; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* re-route these init and free functions to the above functions */ |
|
|
|
|
FT_Error |
|
|
|
|
ft_raster5_renderer_class_pic_init( FT_Library library ) |
|
|
|
@ -85,6 +90,7 @@ |
|
|
|
|
return ft_raster1_renderer_class_pic_init( library ); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void |
|
|
|
|
ft_raster5_renderer_class_pic_free( FT_Library library ) |
|
|
|
|
{ |
|
|
|
|