5172
+ − 1
/***************************************************************************/
+ − 2
/* */
+ − 3
/* basepic.c */
+ − 4
/* */
+ − 5
/* The FreeType position independent code services for base. */
+ − 6
/* */
+ − 7
/* Copyright 2009 by */
+ − 8
/* Oran Agra and Mickey Gabel. */
+ − 9
/* */
+ − 10
/* This file is part of the FreeType project, and may only be used, */
+ − 11
/* modified, and distributed under the terms of the FreeType project */
+ − 12
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
+ − 13
/* this file you indicate that you have read the license and */
+ − 14
/* understand and accept it fully. */
+ − 15
/* */
+ − 16
/***************************************************************************/
+ − 17
+ − 18
+ − 19
#include <ft2build.h>
+ − 20
#include FT_FREETYPE_H
+ − 21
#include FT_INTERNAL_OBJECTS_H
+ − 22
#include "basepic.h"
+ − 23
+ − 24
#ifdef FT_CONFIG_OPTION_PIC
+ − 25
+ − 26
/* forward declaration of PIC init functions from ftglyph.c */
+ − 27
void FT_Init_Class_ft_outline_glyph_class(FT_Glyph_Class*);
+ − 28
void FT_Init_Class_ft_bitmap_glyph_class(FT_Glyph_Class*);
+ − 29
+ − 30
/* forward declaration of PIC init functions from ftinit.c */
+ − 31
FT_Error ft_create_default_module_classes(FT_Library);
+ − 32
void ft_destroy_default_module_classes(FT_Library);
+ − 33
+ − 34
void
+ − 35
ft_base_pic_free( FT_Library library )
+ − 36
{
+ − 37
FT_PIC_Container* pic_container = &library->pic_container;
+ − 38
FT_Memory memory = library->memory;
+ − 39
if ( pic_container->base )
+ − 40
{
+ − 41
/* Destroy default module classes (in case FT_Add_Default_Modules was used) */
+ − 42
ft_destroy_default_module_classes( library );
+ − 43
+ − 44
FT_FREE( pic_container->base );
+ − 45
pic_container->base = NULL;
+ − 46
}
+ − 47
}
+ − 48
+ − 49
+ − 50
FT_Error
+ − 51
ft_base_pic_init( FT_Library library )
+ − 52
{
+ − 53
FT_PIC_Container* pic_container = &library->pic_container;
+ − 54
FT_Error error = FT_Err_Ok;
+ − 55
BasePIC* container;
+ − 56
FT_Memory memory = library->memory;
+ − 57
+ − 58
/* allocate pointer, clear and set global container pointer */
+ − 59
if ( FT_ALLOC ( container, sizeof ( *container ) ) )
+ − 60
return error;
+ − 61
FT_MEM_SET( container, 0, sizeof(*container) );
+ − 62
pic_container->base = container;
+ − 63
+ − 64
/* initialize default modules list and pointers */
+ − 65
error = ft_create_default_module_classes( library );
+ − 66
if ( error )
+ − 67
goto Exit;
+ − 68
+ − 69
/* initialize pointer table - this is how the module usually expects this data */
+ − 70
FT_Init_Class_ft_outline_glyph_class(&container->ft_outline_glyph_class);
+ − 71
FT_Init_Class_ft_bitmap_glyph_class(&container->ft_bitmap_glyph_class);
+ − 72
+ − 73
Exit:
+ − 74
if(error)
+ − 75
ft_base_pic_free(library);
+ − 76
return error;
+ − 77
}
+ − 78
+ − 79
+ − 80
#endif /* FT_CONFIG_OPTION_PIC */
+ − 81
+ − 82
+ − 83
/* END */