41#include FT_CONFIG_CONFIG_H
54#define FT_COMPONENT init
59#define FT_USE_MODULE( type, x ) extern "C" const type x;
61#define FT_USE_MODULE( type, x ) extern const type x;
64#include FT_CONFIG_MODULES_H
67#define FT_USE_MODULE( type, x ) (const FT_Module_Class*)&(x),
70 const FT_Module_Class*
const ft_default_modules[] =
72#include FT_CONFIG_MODULES_H
80 FT_Add_Default_Modules( FT_Library library )
83 const FT_Module_Class*
const* cur;
89 cur = (
const FT_Module_Class*
const*)ft_default_modules;
94 error = FT_Add_Module( library, *cur );
97 FT_TRACE0((
"FT_Add_Default_Module:"
98 " Cannot install `%s', error = 0x%x\n",
99 (*cur)->module_name, error ));
105#ifdef FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES
107#define MAX_LENGTH 128
111 FT_EXPORT_DEF(
void )
112 FT_Set_Default_Properties( FT_Library library )
118 char module_name[MAX_LENGTH + 1];
119 char property_name[MAX_LENGTH + 1];
120 char property_value[MAX_LENGTH + 1];
125 env = ft_getenv(
"FREETYPE_PROPERTIES" );
129 for ( p = env; *p; p++ )
132 if ( *p ==
' ' || *p ==
'\t' )
137 for ( i = 0; i < MAX_LENGTH; i++ )
139 if ( !*p || *p ==
':' )
141 module_name[i] = *p++;
143 module_name[i] =
'\0';
145 if ( !*p || *p !=
':' || p == q )
150 for ( i = 0; i < MAX_LENGTH; i++ )
152 if ( !*p || *p ==
'=' )
154 property_name[i] = *p++;
156 property_name[i] =
'\0';
158 if ( !*p || *p !=
'=' || p == q )
163 for ( i = 0; i < MAX_LENGTH; i++ )
165 if ( !*p || *p ==
' ' || *p ==
'\t' )
167 property_value[i] = *p++;
169 property_value[i] =
'\0';
171 if ( !( *p ==
'\0' || *p ==
' ' || *p ==
'\t' ) || p == q )
175 ft_property_string_set( library,
187 FT_EXPORT_DEF(
void )
188 FT_Set_Default_Properties( FT_Library library )
190 FT_UNUSED( library );
198 FT_EXPORT_DEF( FT_Error )
199 FT_Init_FreeType( FT_Library *alibrary )
205#ifdef FT_DEBUG_LOGGING
214 memory = FT_New_Memory();
217 FT_ERROR((
"FT_Init_FreeType: cannot find memory manager\n" ));
218 return FT_THROW( Unimplemented_Feature );
224 error = FT_New_Library( memory, alibrary );
226 FT_Done_Memory( memory );
228 FT_Add_Default_Modules( *alibrary );
230 FT_Set_Default_Properties( *alibrary );
238 FT_EXPORT_DEF( FT_Error )
239 FT_Done_FreeType( FT_Library library )
245 return FT_THROW( Invalid_Library_Handle );
247 memory = library->memory;
250 FT_Done_Library( library );
253 FT_Done_Memory( memory );
255#ifdef FT_DEBUG_LOGGING