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

📄 gxvcommn.h

📁 QT 开发环境里面一个很重要的文件
💻 H
📖 第 1 页 / 共 2 页
字号:
#define GXV_TRACE( s )          do ; while ( 0 )#endif  /* !FT_DEBUG_LEVEL_TRACE */  /*************************************************************************/  /*************************************************************************/  /*****                                                               *****/  /*****                    32bit alignment checking                   *****/  /*****                                                               *****/  /*************************************************************************/  /*************************************************************************/#define GXV_32BIT_ALIGNMENT_VALIDATE( a ) \          FT_BEGIN_STMNT                  \            {                             \              if ( 0 != ( (a) % 4 ) )     \                FT_INVALID_OFFSET ;       \            }                             \          FT_END_STMNT  /*************************************************************************/  /*************************************************************************/  /*****                                                               *****/  /*****                    Dumping Binary Data                        *****/  /*****                                                               *****/  /*************************************************************************/  /*************************************************************************/#define GXV_TRACE_HEXDUMP( p, len )                     \          FT_BEGIN_STMNT                                \            {                                           \              FT_Bytes  b;                              \                                                        \                                                        \              for ( b = p; b < (FT_Bytes)p + len; b++ ) \                FT_TRACE1(("\\x%02x", *b)) ;            \            }                                           \          FT_END_STMNT#define GXV_TRACE_HEXDUMP_C( p, len )                   \          FT_BEGIN_STMNT                                \            {                                           \              FT_Bytes  b;                              \                                                        \                                                        \              for ( b = p; b < (FT_Bytes)p + len; b++ ) \                if ( 0x40 < *b && *b < 0x7e )           \                  FT_TRACE1(("%c", *b)) ;               \                else                                    \                  FT_TRACE1(("\\x%02x", *b)) ;          \            }                                           \          FT_END_STMNT#define GXV_TRACE_HEXDUMP_SFNTNAME( n )               \          GXV_TRACE_HEXDUMP( n.string, n.string_len )  /*************************************************************************/  /*************************************************************************/  /*****                                                               *****/  /*****                         LOOKUP TABLE                          *****/  /*****                                                               *****/  /*************************************************************************/  /*************************************************************************/  FT_LOCAL( void )  gxv_BinSrchHeader_validate( FT_Bytes       p,                              FT_Bytes       limit,                              FT_UShort*     unitSize_p,                              FT_UShort*     nUnits_p,                              GXV_Validator  valid );  FT_LOCAL( void )  gxv_LookupTable_validate( FT_Bytes       table,                            FT_Bytes       limit,                            GXV_Validator  valid );  /*************************************************************************/  /*************************************************************************/  /*****                                                               *****/  /*****                          Glyph ID                             *****/  /*****                                                               *****/  /*************************************************************************/  /*************************************************************************/  FT_LOCAL( FT_Int )  gxv_glyphid_validate( FT_UShort      gid,                        GXV_Validator  valid );  /*************************************************************************/  /*************************************************************************/  /*****                                                               *****/  /*****                        CONTROL POINT                          *****/  /*****                                                               *****/  /*************************************************************************/  /*************************************************************************/  FT_LOCAL( void )  gxv_ctlPoint_validate( FT_UShort      gid,                         FT_Short       ctl_point,                         GXV_Validator  valid );  /*************************************************************************/  /*************************************************************************/  /*****                                                               *****/  /*****                          SFNT NAME                            *****/  /*****                                                               *****/  /*************************************************************************/  /*************************************************************************/  FT_LOCAL( void )  gxv_sfntName_validate( FT_UShort      name_index,                         FT_UShort      min_index,                         FT_UShort      max_index,                         GXV_Validator  valid );  /*************************************************************************/  /*************************************************************************/  /*****                                                               *****/  /*****                          STATE TABLE                          *****/  /*****                                                               *****/  /*************************************************************************/  /*************************************************************************/  FT_LOCAL( void )  gxv_StateTable_subtable_setup( FT_UShort      table_size,                                 FT_UShort      classTable,                                 FT_UShort      stateArray,                                 FT_UShort      entryTable,                                 FT_UShort*     classTable_length_p,                                 FT_UShort*     stateArray_length_p,                                 FT_UShort*     entryTable_length_p,                                 GXV_Validator  valid );  FT_LOCAL( void )  gxv_XStateTable_subtable_setup( FT_ULong       table_size,                                  FT_ULong       classTable,                                  FT_ULong       stateArray,                                  FT_ULong       entryTable,                                  FT_ULong*      classTable_length_p,                                  FT_ULong*      stateArray_length_p,                                  FT_ULong*      entryTable_length_p,                                  GXV_Validator  valid );  FT_LOCAL( void )  gxv_StateTable_validate( FT_Bytes       table,                           FT_Bytes       limit,                           GXV_Validator  valid );  FT_LOCAL( void )  gxv_XStateTable_validate( FT_Bytes       table,                            FT_Bytes       limit,                            GXV_Validator  valid );  /*************************************************************************/  /*************************************************************************/  /*****                                                               *****/  /*****                 UTILITY MACROS AND FUNCTIONS                  *****/  /*****                                                               *****/  /*************************************************************************/  /*************************************************************************/  FT_LOCAL( void )  gxv_array_getlimits_byte( FT_Bytes       table,                            FT_Bytes       limit,                            FT_Byte*       min,                            FT_Byte*       max,                            GXV_Validator  valid );  FT_LOCAL( void )  gxv_array_getlimits_ushort( FT_Bytes       table,                              FT_Bytes       limit,                              FT_UShort*     min,                              FT_UShort*     max,                              GXV_Validator  valid );  FT_LOCAL( void )  gxv_set_length_by_ushort_offset( FT_UShort*     offset,                                   FT_UShort**    length,                                   FT_UShort*     buff,                                   FT_UInt        nmemb,                                   FT_UShort      limit,                                   GXV_Validator  valid );  FT_LOCAL( void )  gxv_set_length_by_ulong_offset( FT_ULong*      offset,                                  FT_ULong**     length,                                  FT_ULong*      buff,                                  FT_UInt        nmemb,                                  FT_ULong       limit,                                  GXV_Validator  valid);#define GXV_SUBTABLE_OFFSET_CHECK( _offset )          \          FT_BEGIN_STMNT                              \            if ( (_offset) > valid->subtable_length ) \              FT_INVALID_OFFSET;                      \          FT_END_STMNT#define GXV_SUBTABLE_LIMIT_CHECK( _count )                  \          FT_BEGIN_STMNT                                    \            if ( ( p + (_count) - valid->subtable_start ) > \                   valid->subtable_length )                 \              FT_INVALID_TOO_SHORT;                         \          FT_END_STMNT#define GXV_USHORT_TO_SHORT( _us )                                    \          ( ( 0x8000U < ( _us ) ) ? ( ( _us ) - 0x8000U ) : ( _us ) )#define GXV_STATETABLE_HEADER_SIZE  ( 2 + 2 + 2 + 2 )#define GXV_STATEHEADER_SIZE        GXV_STATETABLE_HEADER_SIZE#define GXV_XSTATETABLE_HEADER_SIZE  ( 4 + 4 + 4 + 4 )#define GXV_XSTATEHEADER_SIZE        GXV_XSTATETABLE_HEADER_SIZE  /*************************************************************************/  /*************************************************************************/  /*****                                                               *****/  /*****                        Table overlapping                      *****/  /*****                                                               *****/  /*************************************************************************/  /*************************************************************************/  typedef struct  GXV_odtect_DataRec_  {    FT_Bytes    start;    FT_ULong    length;    FT_String*  name;  } GXV_odtect_DataRec,  *GXV_odtect_Data;  typedef struct  GXV_odtect_RangeRec_  {    FT_UInt          nRanges;    GXV_odtect_Data  range;  } GXV_odtect_RangeRec, *GXV_odtect_Range;  FT_LOCAL( void )  gxv_odtect_add_range( FT_Bytes          start,                        FT_ULong          length,                        const FT_String*  name,                        GXV_odtect_Range  odtect );  FT_LOCAL( void )  gxv_odtect_validate( GXV_odtect_Range  odtect,                       GXV_Validator     valid );#define GXV_ODTECT( n, odtect )                              \          GXV_odtect_DataRec   odtect ## _range[n];          \          GXV_odtect_RangeRec  odtect ## _rec = { 0, NULL }; \          GXV_odtect_Range     odtect = NULL#define GXV_ODTECT_INIT( odtect )                      \          FT_BEGIN_STMNT                               \            odtect ## _rec.nRanges = 0;                \            odtect ## _rec.range   = odtect ## _range; \            odtect                 = & odtect ## _rec; \          FT_END_STMNT /* */FT_END_HEADER#endif /* __GXVCOMMN_H__ *//* END */

⌨️ 快捷键说明

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