/**************************************************************************** * * ftinit.c * * FreeType initialization layer (body). * * Copyright (C) 1996-2023 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. * */ /************************************************************************** * * The purpose of this file is to implement the following two * functions: * * FT_Add_Default_Modules(): * This function is used to add the set of default modules to a * fresh new library object. The set is taken from the header file * `freetype/config/ftmodule.h'. See the document `FreeType 2.0 * Build System' for more information. * * FT_Init_FreeType(): * This function creates a system object for the current platform, * builds a library out of it, then calls FT_Default_Drivers(). * * Note that even if FT_Init_FreeType() uses the implementation of the * system object defined at build time, client applications are still * able to provide their own `ftsystem.c'. * */ #include <ft2build.h> #include FT_CONFIG_CONFIG_H #include <freetype/internal/ftobjs.h> #include <freetype/internal/ftdebug.h> #include <freetype/ftmodapi.h> /************************************************************************** * * The macro FT_COMPONENT is used in trace mode. It is an implicit * parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log * messages during execution. */ #undef FT_COMPONENT #define FT_COMPONENT … #undef FT_USE_MODULE #ifdef __cplusplus #define FT_USE_MODULE … #else #define FT_USE_MODULE( type, x ) … #endif #include FT_CONFIG_MODULES_H #undef FT_USE_MODULE #define FT_USE_MODULE( type, x ) … static const FT_Module_Class* const ft_default_modules[] = …; /* documentation is in ftmodapi.h */ FT_EXPORT_DEF( void ) FT_Add_Default_Modules( FT_Library library ) { … } #ifdef FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES #define MAX_LENGTH … /* documentation is in ftmodapi.h */ FT_EXPORT_DEF( void ) FT_Set_Default_Properties( FT_Library library ) { … } #else FT_EXPORT_DEF( void ) FT_Set_Default_Properties( FT_Library library ) { FT_UNUSED( library ); } #endif /* documentation is in freetype.h */ FT_EXPORT_DEF( FT_Error ) FT_Init_FreeType( FT_Library *alibrary ) { … } /* documentation is in freetype.h */ FT_EXPORT_DEF( FT_Error ) FT_Done_FreeType( FT_Library library ) { … } /* END */