⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ttengine.h

📁 神龙卡开发原代码
💻 H
字号:
/******************************************************************* * *  ttengine.h                                                   1.1 * *    Engine instance structure definition. * *  Copyright 1996-1999 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. * *  New in 1.1 : * *    - added the 'raster_lock' mutex field to synchronize *      scan-line conversion in thread-safe and re-entrant builds. * ******************************************************************/#ifndef TTENGINE_H#define TTENGINE_H#include "tttypes.h"#include "ttconfig.h"#include "freetype.h"#include "ttmutex.h"#ifdef __cplusplus  extern "C" {#endif  /********************************************************************/  /*                                                                  */  /*  The freetype engine instance structure.                         */  /*                                                                  */  /*  This structure holds all the data that is necessary to run      */  /*  one instance of the freetype engine.  It is needed to get a     */  /*  completely re-entrant version of the library.                   */  /*                                                                  */  /*  The goal is to move _all_ component-specific variables, either  */  /*  static or global in the structure; the component initializers   */  /*  and finalizers will all be called with the address of a valid   */  /*  TEngine_Instance.                                               */  /*                                                                  */  /********************************************************************/  struct  TEngine_Instance_  {     TMutex  lock;               /* engine lock */     void*   list_free_elements;     void*   objs_face_class;       /* the face cache class     */     void*   objs_instance_class;   /* the instance cache class */     void*   objs_execution_class;  /* the context cache class  */     void*   objs_glyph_class;      /* the glyph cache class    */     void*   objs_face_cache;  /* these caches are used to track */     void*   objs_exec_cache;  /* the current face and execution */                               /* context objects                */     void*   file_component;    /* ttfile implementation dependent   */     TMutex  raster_lock;       /* mutex for this engine's render pool   */     void*   raster_component;  /* ttraster implementation depedent      */     Byte    raster_palette[5]; /* gray-levels palette for anti-aliasing */     void*   extension_component;  /* extensions dependent */#if 0     TT_Glyph_Loader_Callback  glCallback; /* glyph loader callback, if any */#endif  };  /* NOTE : The raster's lock is only acquired by the Render_Glyph and     */  /*        Render_Gray_Glyph functions, which always release it on exit   */  /*        They do not lock the engine mutex. This means you shouldn't    */  /*        be concerned about deadlocks between the two mutexes, as these */  /*        should never appear..                                          */  typedef struct TEngine_Instance_  TEngine_Instance;  typedef TEngine_Instance*         PEngine_Instance;#ifdef TT_CONFIG_OPTION_THREAD_SAFE  /* for re-entrant builds */#define ENGINE_ARG    TEngine_Instance*  _engine#define ENGINE_ARGS   TEngine_Instance*  _engine,#define ENGINE_VAR   _engine#define ENGINE_VARS  _engine,#define ENGINE  _engine#else                       /* for thread-safe builds */#define ENGINE_ARG    /* void */#define ENGINE_ARGS#define ENGINE_VAR#define ENGINE_VARS#endif /* TT_CONFIG_OPTION_THREAD_SAFE */#ifdef __cplusplus  }#endif#endif /* TTENGINE_H *//* END */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -