From cbd016cda002145743d87224f0a9f9068abbfc67 Mon Sep 17 00:00:00 2001 From: David Boddie Date: Wed, 28 Feb 2024 01:52:58 +0100 Subject: Removed libfreetype fork, replacing it with a submodule and some Inferno-specific files. Retained the license documents and updated the header files. --- include/freetype/internal/ftobject.h | 533 ----------------------------------- 1 file changed, 533 deletions(-) delete mode 100644 include/freetype/internal/ftobject.h (limited to 'include/freetype/internal/ftobject.h') diff --git a/include/freetype/internal/ftobject.h b/include/freetype/internal/ftobject.h deleted file mode 100644 index f285d9e2..00000000 --- a/include/freetype/internal/ftobject.h +++ /dev/null @@ -1,533 +0,0 @@ -#ifndef __FT_OBJECT_H__ -#define __FT_OBJECT_H__ - -#include -#include FT_FREETYPE_H - -FT_BEGIN_HEADER - - /************************************************************** - * - * @type: FT_Object - * - * @description: - * handle to a FreeType Object. See @FT_ObjectRec - */ - typedef struct FT_ObjectRec_* FT_Object; - - - /************************************************************** - * - * @type: FT_Class - * - * @description: - * handle to a constant class handle to a FreeType Object. - * - * Note that a class is itself a @FT_Object and are dynamically - * allocated on the heap. - * - * @also: - * @FT_ClassRec, @FT_Object, @FT_ObjectRec, @FT_Type, @FT_TypeRec - */ - typedef const struct FT_ClassRec_* FT_Class; - - - /************************************************************** - * - * @type: FT_Type - * - * @description: - * handle to a constant structure (of type @FT_TypeRec) used - * to describe a given @FT_Class type to the FreeType object - * sub-system. - */ - typedef const struct FT_TypeRec_* FT_Type; - - - - /************************************************************** - * - * @struct: FT_ObjectRec - * - * @description: - * a structure describing the root fields of all @FT_Object - * class instances in FreeType - * - * @fields: - * clazz :: handle to the object's class - * ref_count :: object's reference count. Starts at 1 - */ - typedef struct FT_ObjectRec_ - { - FT_Class clazz; - FT_Int ref_count; - - } FT_ObjectRec; - - - /************************************************************** - * - * @macro: FT_OBJECT (x) - * - * @description: - * a useful macro to type-cast anything to a @FT_Object - * handle. No check performed.. - */ -#define FT_OBJECT(x) ((FT_Object)(x)) - - - /************************************************************** - * - * @macro: FT_OBJECT_P (x) - * - * @description: - * a useful macro to type-cast anything to a pointer to - * @FT_Object handle. - */ -#define FT_OBJECT_P(x) ((FT_Object*)(x)) - - - /************************************************************** - * - * @macro: FT_OBJECT__CLASS (obj) - * - * @description: - * a useful macro to return the class of any object - */ -#define FT_OBJECT__CLASS(x) FT_OBJECT(x)->clazz - - - /************************************************************** - * - * @macro: FT_OBJECT__REF_COUNT (obj) - * - * @description: - * a useful macro to return the reference count of any object - */ -#define FT_OBJECT__REF_COUNT(x) FT_OBJECT(x)->ref_count - - - /************************************************************** - * - * @macro: FT_OBJECT__MEMORY (obj) - * - * @description: - * a useful macro to return a handle to the memory manager - * used to allocate a given object - */ -#define FT_OBJECT__MEMORY(x) FT_CLASS__MEMORY(FT_OBJECT(x)->clazz) - - - /************************************************************** - * - * @macro: FT_OBJECT__LIBRARY (obj) - * - * @description: - * a useful macro to return a handle to the library handle - * that owns the object - */ -#define FT_OBJECT__LIBRARY(x) FT_CLASS__LIBRARY(FT_OBJECT(x)->clazz) - - - /************************************************************** - * - * @functype: FT_Object_InitFunc - * - * @description: - * a function used to initialize a new object - * - * @input: - * object :: target object handle - * init_data :: optional pointer to initialization data - * - * @return: - * error code. 0 means success - */ - typedef FT_Error (*FT_Object_InitFunc)( FT_Object object, - FT_Pointer init_data ); - - /************************************************************** - * - * @functype: FT_Object_DoneFunc - * - * @description: - * a function used to finalize a given object - * - * @input: - * object :: handle to target object - */ - typedef void (*FT_Object_DoneFunc)( FT_Object object ); - - - /************************************************************** - * - * @struct: FT_ClassRec - * - * @description: - * a structure used to describe a given object class within - * FreeType - * - * @fields: - * object :: root @FT_ObjectRec fields, since each class is - * itself an object. (it's an instance of the - * "metaclass", a special object of the FreeType - * object sub-system.) - * - * magic :: a 32-bit magic number used for decoding - * super :: pointer to super class - * type :: the @FT_Type descriptor of this class - * memory :: the current memory manager handle - * library :: the current library handle - * info :: an opaque pointer to class-specific information - * managed by the FreeType object sub-system - * - * class_done :: the class destructor function - * - * obj_size :: size of class instances in bytes - * obj_init :: class instance constructor - * obj_done :: class instance destructor - */ - typedef struct FT_ClassRec_ - { - FT_ObjectRec object; - FT_UInt32 magic; - FT_Class super; - FT_Type type; - FT_Memory memory; - FT_Library library; - FT_Pointer info; - - FT_Object_DoneFunc class_done; - - FT_UInt obj_size; - FT_Object_InitFunc obj_init; - FT_Object_DoneFunc obj_done; - - } FT_ClassRec; - - - /************************************************************** - * - * @macro: FT_CLASS (x) - * - * @description: - * a useful macro to convert anything to a class handle - * without checks - */ -#define FT_CLASS(x) ((FT_Class)(x)) - - - /************************************************************** - * - * @macro: FT_CLASS_P (x) - * - * @description: - * a useful macro to convert anything to a pointer to a class - * handle without checks - */ -#define FT_CLASS_P(x) ((FT_Class*)(x)) - - - /************************************************************** - * - * @macro: FT_CLASS__MEMORY (clazz) - * - * @description: - * a useful macro to return the memory manager handle of a - * given class - */ -#define FT_CLASS__MEMORY(x) FT_CLASS(x)->memory - - - /************************************************************** - * - * @macro: FT_CLASS__LIBRARY (clazz) - * - * @description: - * a useful macro to return the library handle of a - * given class - */ -#define FT_CLASS__LIBRARY(x) FT_CLASS(x)->library - - - - /************************************************************** - * - * @macro: FT_CLASS__TYPE (clazz) - * - * @description: - * a useful macro to return the type of a given class - * given class - */ -#define FT_CLASS__TYPE(x) FT_CLASS(x)->type - - /* */ -#define FT_CLASS__INFO(x) FT_CLASS(x)->info -#define FT_CLASS__MAGIC(x) FT_CLASS(x)->magic - - - /************************************************************** - * - * @struct: FT_TypeRec - * - * @description: - * a structure used to describe a given class to the FreeType - * object sub-system. - * - * @fields: - * name :: class name. only used for debugging - * super :: type of super-class. NULL if none - * - * class_size :: size of class structure in bytes - * class_init :: class constructor - * class_done :: class finalizer - * - * obj_size :: instance size in bytes - * obj_init :: instance constructor. can be NULL - * obj_done :: instance destructor. can be NULL - * - * @note: - * if 'obj_init' is NULL, the class will use it's parent - * constructor, if any - * - * if 'obj_done' is NULL, the class will use it's parent - * finalizer, if any - * - * the object sub-system allocates a new class, copies - * the content of its super-class into the new structure, - * _then_ calls 'clazz_init'. - * - * 'class_init' and 'class_done' can be NULL, in which case - * the parent's class constructor and destructor wil be used - */ - typedef struct FT_TypeRec_ - { - const char* name; - FT_Type super; - - FT_UInt class_size; - FT_Object_InitFunc class_init; - FT_Object_DoneFunc class_done; - - FT_UInt obj_size; - FT_Object_InitFunc obj_init; - FT_Object_DoneFunc obj_done; - - } FT_TypeRec; - - - /************************************************************** - * - * @macro: FT_TYPE (x) - * - * @description: - * a useful macro to convert anything to a class type handle - * without checks - */ -#define FT_TYPE(x) ((FT_Type)(x)) - - - /************************************************************** - * - * @function: ft_object_check - * - * @description: - * checks that a handle points to a valid @FT_Object - * - * @input: - * obj :: handle/pointer - * - * @return: - * 1 iff the handle points to a valid object. 0 otherwise - */ - FT_BASE( FT_Int ) - ft_object_check( FT_Pointer obj ); - - - /************************************************************** - * - * @function: ft_object_is_a - * - * @description: - * checks that a handle points to a valid @FT_Object that - * is an instance of a given class (or of any of its sub-classes) - * - * @input: - * obj :: handle/pointer - * clazz :: class handle to check - * - * @return: - * 1 iff the handle points to a valid 'clazz' instance. 0 - * otherwise. - */ - FT_BASE( FT_Int ) - ft_object_is_a( FT_Pointer obj, - FT_Class clazz ); - - - /************************************************************** - * - * @function: ft_object_create - * - * @description: - * create a new object (class instance) - * - * @output: - * aobject :: new object handle. NULL in case of error - * - * @input: - * clazz :: object's class pointer - * init_data :: optional pointer to initialization data - * - * @return: - * error code. 0 means success - */ - FT_BASE( FT_Error ) - ft_object_create( FT_Object *aobject, - FT_Class clazz, - FT_Pointer init_data ); - - - /************************************************************** - * - * @function: ft_object_create_from_type - * - * @description: - * create a new object (class instance) from a @FT_Type - * - * @output: - * aobject :: new object handle. NULL in case of error - * - * @input: - * type :: object's type descriptor - * init_data :: optional pointer to initialization data - * - * @return: - * error code. 0 means success - * - * @note: - * this function is slower than @ft_object_create - * - * this is equivalent to calling @ft_class_from_type followed by - * @ft_object_create - */ - FT_BASE( FT_Error ) - ft_object_create_from_type( FT_Object *aobject, - FT_Type type, - FT_Pointer init_data, - FT_Library library ); - - - - /************************************************************** - * - * @macro FT_OBJ_CREATE (object,class,init) - * - * @description: - * a convenient macro used to create new objects. see - * @ft_object_create for details - */ -#define FT_OBJ_CREATE( _obj, _clazz, _init ) \ - ft_object_create( FT_OBJECT_P(&(_obj)), _clazz, _init ) - - - /************************************************************** - * - * @macro FT_CREATE (object,class,init) - * - * @description: - * a convenient macro used to create new objects. It also - * sets an _implicit_ local variable named "error" to the error - * code returned by the object constructor. - */ -#define FT_CREATE( _obj, _clazz, _init ) \ - FT_SET_ERROR( FT_OBJ_CREATE( _obj, _clazz, _init ) ) - - /************************************************************** - * - * @macro FT_OBJ_CREATE_FROM_TYPE (object,type,init) - * - * @description: - * a convenient macro used to create new objects. see - * @ft_object_create_from_type for details - */ -#define FT_OBJ_CREATE_FROM_TYPE( _obj, _type, _init, _lib ) \ - ft_object_create_from_type( FT_OBJECT_P(&(_obj)), _type, _init, _lib ) - - - /************************************************************** - * - * @macro FT_CREATE_FROM_TYPE (object,type,init) - * - * @description: - * a convenient macro used to create new objects. It also - * sets an _implicit_ local variable named "error" to the error - * code returned by the object constructor. - */ -#define FT_CREATE_FROM_TYPE( _obj, _type, _init, _lib ) \ - FT_SET_ERROR( FT_OBJ_CREATE_FROM_TYPE( _obj, _type, _init, _lib ) ) - - - /* */ - - /************************************************************** - * - * @function: ft_class_from_type - * - * @description: - * retrieves the class object corresponding to a given type - * descriptor. The class is created when needed - * - * @output: - * aclass :: handle to corresponding class object. NULL in - * case of error - * - * @input: - * type :: type descriptor handle - * library :: library handle - * - * @return: - * error code. 0 means success - */ - FT_BASE( FT_Error ) - ft_class_from_type( FT_Class *aclass, - FT_Type type, - FT_Library library ); - - - /* */ - -#include FT_INTERNAL_HASH_H - - typedef struct FT_ClassHNodeRec_* FT_ClassHNode; - - typedef struct FT_ClassHNodeRec_ - { - FT_HashNodeRec hnode; - FT_Type type; - FT_Class clazz; - - } FT_ClassHNodeRec; - - typedef struct FT_MetaClassRec_ - { - FT_ClassRec clazz; /* the meta-class is a class itself */ - FT_HashRec type_to_class; /* the type => class hash table */ - - } FT_MetaClassRec, *FT_MetaClass; - - - /* initialize meta class */ - FT_BASE( FT_Error ) - ft_metaclass_init( FT_MetaClass meta, - FT_Library library ); - - /* finalize meta class - destroy all registered class objects */ - FT_BASE( void ) - ft_metaclass_done( FT_MetaClass meta ); - - /* */ - -FT_END_HEADER - -#endif /* __FT_OBJECT_H__ */ -- cgit v1.2.3