亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ftobject.h

?? a very goog book
?? H
字號:
#ifndef __FT_OBJECT_H__#define __FT_OBJECT_H__#include <ft2build.h>#include FT_FREETYPE_HFT_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  *  * @throws: any  *  *   the object is _assumed_ to be reachable from the cleanup  *   stack when the constructor is called. This means that  *   any exception can be thrown safely in it.  */  typedef void  (*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  *  * @throws: *never* !!  */  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  *   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  *  *   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_Type             type;    FT_Memory           memory;    FT_Library          library;    FT_Pointer          info;    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 'obj_done' is NULL, the class will use it's parent  *   finalizer.  *  *   the object sub-system allocates a new class, copies  *   the content of its super-class into the new structure,  *   _then_ calls 'clazz_init'.  */  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_DEF( 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_DEF( FT_Int )  ft_object_is_a( FT_Pointer  obj,                  FT_Class    clazz ); /**************************************************************  *  * @function: ft_object_new  *  * @description:  *   create a new object (class instance)  *  * @input:  *   clazz     :: object's class pointer  *   init_data :: optional pointer to initialization data  *  * @return:  *   handle to new object. Cannot be NULL !  */  FT_BASE_DEF( FT_Object )  ft_object_new( FT_Class    clazz,                 FT_Pointer  init_data ); /**************************************************************  *  * @function: ft_object_create  *  * @description:  *   a variation of @ft_object_new that should be used when  *   creating a new object that is owned by another object  *   which is reachable from the cleanup stack.  *  *   this function is a bit more akward to use but completely  *   avoids push/pop pairs during object construction and is  *   therefore faster.  *  * @output:  *   pobject   :: new object handle  *  * @input:  *   clazz     :: object's class pointer  *   init_data :: optional pointer to initialization data  *   push      :: boolean. If true, the new object is pushed  *                on top of the cleanup stack.  */  FT_BASE_DEF( void )  ft_object_create( FT_Object  *pobject,                    FT_Class    clazz,                    FT_Pointer  init_data ); /* */  FT_BASE_DEF( FT_Class )  ft_class_find_by_type( FT_Type    type,                         FT_Memory  memory );  FT_BASE_DEF( FT_Class )  ft_class_find_by_name( FT_CString  class_name,                         FT_Memory   memory );  FT_BASE_DEF( FT_Object )  ft_object_new_from_type( FT_Type     type,                           FT_Pointer  data,                           FT_Memory   memory );  FT_BASE_DEF( void )  ft_object_create_from_type( FT_Object  *pobject,                              FT_Type     type,                              FT_Pointer  init_data,                              FT_Memory   memory );  FT_BASE_DEF( void )  ft_object_push( FT_Object  object );  FT_BASE_DEF( void )  ft_object_pop( FT_Object  object );  FT_BASE_DEF( void )  ft_object_pop_destroy( FT_Object  object );FT_END_HEADER#endif /* __FT_OBJECT_H__ */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人av免费在线播放| 国产精品一二二区| 激情欧美一区二区| 视频一区二区三区入口| 中文字幕一区在线观看| 在线观看中文字幕不卡| 亚洲精品日韩专区silk| 久久99久久99小草精品免视看| 成人精品高清在线| 欧美精品一区二| 一区二区三区免费网站| 成人福利视频在线| 国产亚洲短视频| 激情久久五月天| 91精品国产欧美一区二区| 亚洲一区在线观看免费观看电影高清 | 成人免费电影视频| 久久综合国产精品| 免费xxxx性欧美18vr| 欧美美女黄视频| 亚洲人成在线播放网站岛国 | 欧美一区二区大片| 一区二区三区欧美| 在线区一区二视频| 亚洲欧美日韩电影| 91丨九色丨蝌蚪富婆spa| 国产精品电影一区二区| 久久精品国内一区二区三区| 欧美日韩电影在线播放| 亚洲国产欧美日韩另类综合| 欧美在线观看视频一区二区| 樱桃视频在线观看一区| 色猫猫国产区一区二在线视频| 中文字幕精品—区二区四季| 丁香婷婷深情五月亚洲| 国产精品美女www爽爽爽| 成人妖精视频yjsp地址| 亚洲女爱视频在线| 色国产综合视频| 午夜婷婷国产麻豆精品| 69久久99精品久久久久婷婷| 国产精品一区二区免费不卡 | 欧美一区午夜视频在线观看| 国产亚洲一区二区在线观看| 亚洲va天堂va国产va久| 成人毛片老司机大片| 欧美sm极限捆绑bd| 奇米在线7777在线精品| 欧美色图在线观看| 国产视频一区二区在线| 成人黄色网址在线观看| 国产成人自拍网| 成人深夜福利app| 日韩理论电影院| 一本到一区二区三区| 亚洲在线视频网站| 欧美日本免费一区二区三区| 免费久久99精品国产| 国产日韩综合av| 色老汉av一区二区三区| 精品一区二区三区日韩| 国产日本欧美一区二区| 色综合天天综合网国产成人综合天| 亚洲欧美一区二区三区国产精品 | 精品欧美一区二区久久| 国产成人在线视频网址| 亚洲综合精品自拍| 久久精品视频一区二区三区| 91麻豆免费观看| 欧美a一区二区| 欧美激情一区二区三区在线| 欧美男同性恋视频网站| 成人天堂资源www在线| 视频一区欧美精品| 国产精品电影一区二区三区| 日韩一区二区三区免费看| av在线不卡免费看| 久久99精品一区二区三区| 一区二区三区在线观看欧美| 久久综合精品国产一区二区三区| 91日韩在线专区| 国产乱淫av一区二区三区| 亚洲午夜久久久久久久久电影网| 久久久不卡网国产精品一区| 欧美人与禽zozo性伦| 不卡的av在线播放| 激情综合亚洲精品| 日本伊人午夜精品| 亚洲一二三四区不卡| 国产精品乱子久久久久| 日韩欧美一区中文| 欧美日韩国产a| 欧美午夜在线观看| 成人18视频在线播放| 国产尤物一区二区在线| 美女国产一区二区三区| 亚洲欧美日韩精品久久久久| 国产日韩高清在线| 精品福利一二区| 欧美一级理论性理论a| 欧美亚洲禁片免费| 在线影院国内精品| 91福利小视频| 在线观看日韩高清av| 91色乱码一区二区三区| www.欧美日韩| 99精品久久免费看蜜臀剧情介绍| 国产成人精品免费| 国产成人在线视频网站| 国产一区二区在线免费观看| 紧缚奴在线一区二区三区| 免费观看成人鲁鲁鲁鲁鲁视频| 亚洲成人一区在线| 亚洲成人7777| 日韩国产成人精品| 婷婷国产v国产偷v亚洲高清| 日韩中文字幕av电影| 免费在线观看精品| 久久99国产精品免费| 国产精品一级片在线观看| 99久久777色| 99视频精品全部免费在线| 成人丝袜视频网| 色婷婷综合久久久| 欧美日韩专区在线| 91精品国产综合久久久蜜臀粉嫩 | 26uuu亚洲综合色欧美 | 欧美猛男男办公室激情| 91精品国产综合久久久久 | 欧美亚洲动漫制服丝袜| 9191成人精品久久| 精品美女被调教视频大全网站| 国产日韩精品一区二区浪潮av| 欧美激情综合五月色丁香| 久久老女人爱爱| 91小视频免费观看| 国产成人在线观看免费网站| 成人免费va视频| 欧美日韩你懂得| 久久久不卡影院| 一级特黄大欧美久久久| 免费久久99精品国产| 成人avav影音| 欧美日韩视频在线一区二区| 欧美成人午夜电影| 亚洲国产激情av| 香港成人在线视频| 国产在线视频一区二区三区| 97se亚洲国产综合自在线观| 欧美日韩久久久| 国产精品天干天干在观线| 亚洲午夜久久久久久久久电影院| 国产美女娇喘av呻吟久久| 欧洲人成人精品| 国产精品素人一区二区| 五月激情六月综合| av爱爱亚洲一区| 日韩欧美久久久| 亚洲国产精品一区二区尤物区| 激情亚洲综合在线| 欧美性感一类影片在线播放| 久久先锋影音av鲁色资源网| 亚洲自拍偷拍av| www.66久久| 久久网站最新地址| 婷婷综合久久一区二区三区| 91在线一区二区三区| 精品国产一区二区在线观看| 一区二区欧美精品| 成人免费不卡视频| 日韩精品一区二区三区视频 | 国产亚洲自拍一区| 日韩电影在线看| 在线视频国内一区二区| 国产三级欧美三级日产三级99| 日本不卡一二三区黄网| 在线视频国内自拍亚洲视频| 国产精品拍天天在线| 狠狠色丁香婷综合久久| 欧美精品自拍偷拍动漫精品| 亚洲九九爱视频| 国产福利精品一区| 亚洲成人先锋电影| 国产精品1024久久| 日本高清无吗v一区| 中文在线资源观看网站视频免费不卡 | 亚洲久本草在线中文字幕| 丁香天五香天堂综合| 久久亚洲私人国产精品va媚药| 秋霞午夜鲁丝一区二区老狼| 欧美亚洲一区二区在线观看| 亚洲毛片av在线| 波多野结衣中文一区| 久久久国际精品| 国产+成+人+亚洲欧洲自线| 欧美国产日本韩| www.欧美日韩国产在线| 亚洲私人黄色宅男| 色婷婷精品大视频在线蜜桃视频| 亚洲男人的天堂av|