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

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

?? otvcommn.h

?? 智能設備中PDF閱讀器的源碼!用于windows mobile2003或者WM5以上
?? H
?? 第 1 頁 / 共 2 頁
字號:
/***************************************************************************/
/*                                                                         */
/*  otvcommn.h                                                             */
/*                                                                         */
/*    OpenType common tables validation (specification).                   */
/*                                                                         */
/*  Copyright 2004, 2005 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.                                        */
/*                                                                         */
/***************************************************************************/


#ifndef __OTVCOMMN_H__
#define __OTVCOMMN_H__


#include <ft2build.h>
#include "otvalid.h"
#include FT_INTERNAL_DEBUG_H


FT_BEGIN_HEADER


  /*************************************************************************/
  /*************************************************************************/
  /*****                                                               *****/
  /*****                         VALIDATION                            *****/
  /*****                                                               *****/
  /*************************************************************************/
  /*************************************************************************/

  typedef struct OTV_ValidatorRec_*  OTV_Validator;

  typedef void  (*OTV_Validate_Func)( FT_Bytes       table,
                                      OTV_Validator  valid );

  typedef struct  OTV_ValidatorRec_
  {
    FT_Validator        root;
    FT_UInt             type_count;
    OTV_Validate_Func*  type_funcs;

    FT_UInt             lookup_count;
    FT_UInt             glyph_count;

    FT_UInt             nesting_level;

    OTV_Validate_Func   func[3];

    FT_UInt             extra1;     /* for passing parameters */
    FT_UInt             extra2;
    FT_Bytes            extra3;

#ifdef FT_DEBUG_LEVEL_TRACE
    FT_UInt             debug_indent;
    const FT_String*    debug_function_name[3];
#endif

  } OTV_ValidatorRec;


#undef  FT_INVALID_
#define FT_INVALID_( _prefix, _error )                         \
          ft_validator_error( valid->root, _prefix ## _error )

#define OTV_OPTIONAL_TABLE( _table )  FT_UShort  _table;      \
                                      FT_Bytes   _table ## _p

#define OTV_OPTIONAL_OFFSET( _offset )           \
          FT_BEGIN_STMNT                         \
            _offset ## _p = p;                   \
            _offset       = FT_NEXT_USHORT( p ); \
          FT_END_STMNT

#define OTV_LIMIT_CHECK( _count )                    \
          FT_BEGIN_STMNT                             \
            if ( p + (_count) > valid->root->limit ) \
              FT_INVALID_TOO_SHORT;                  \
          FT_END_STMNT

#define OTV_SIZE_CHECK( _size )                                        \
          FT_BEGIN_STMNT                                               \
            if ( _size > 0 && _size < table_size )                     \
            {                                                          \
              if ( valid->root->level == FT_VALIDATE_PARANOID )        \
                FT_INVALID_OFFSET;                                     \
              else                                                     \
              {                                                        \
                /* strip off `const' */                                \
                FT_Byte*  pp = (FT_Byte*)_size ## _p;                  \
                                                                       \
                                                                       \
                FT_TRACE3(( "\n"                                       \
                            "Invalid offset to optional table `%s'!\n" \
                            "Set to zero.\n"                           \
                            "\n", #_size ));                           \
                                                                       \
                /* always assume 16bit entities */                     \
                _size = pp[0] = pp[1] = 0;                             \
              }                                                        \
            }                                                          \
          FT_END_STMNT


#define  OTV_NAME_(x)  #x
#define  OTV_NAME(x)   OTV_NAME_(x)

#define  OTV_FUNC_(x)  x##Func
#define  OTV_FUNC(x)   OTV_FUNC_(x)

#ifdef FT_DEBUG_LEVEL_TRACE

#define OTV_NEST1( x )                                     \
          FT_BEGIN_STMNT                                   \
            valid->nesting_level          = 0;             \
            valid->func[0]                = OTV_FUNC( x ); \
            valid->debug_function_name[0] = OTV_NAME( x ); \
          FT_END_STMNT

#define OTV_NEST2( x, y )                                  \
          FT_BEGIN_STMNT                                   \
            valid->nesting_level          = 0;             \
            valid->func[0]                = OTV_FUNC( x ); \
            valid->func[1]                = OTV_FUNC( y ); \
            valid->debug_function_name[0] = OTV_NAME( x ); \
            valid->debug_function_name[1] = OTV_NAME( y ); \
          FT_END_STMNT

#define OTV_NEST3( x, y, z )                               \
          FT_BEGIN_STMNT                                   \
            valid->nesting_level          = 0;             \
            valid->func[0]                = OTV_FUNC( x ); \
            valid->func[1]                = OTV_FUNC( y ); \
            valid->func[2]                = OTV_FUNC( z ); \
            valid->debug_function_name[0] = OTV_NAME( x ); \
            valid->debug_function_name[1] = OTV_NAME( y ); \
            valid->debug_function_name[2] = OTV_NAME( z ); \
          FT_END_STMNT

#define OTV_INIT  valid->debug_indent = 0

#define OTV_ENTER                                                            \
          FT_BEGIN_STMNT                                                     \
            valid->debug_indent += 2;                                        \
            FT_TRACE4(( "%*.s", valid->debug_indent, 0 ));                   \
            FT_TRACE4(( "%s table\n",                                        \
                        valid->debug_function_name[valid->nesting_level] )); \
          FT_END_STMNT

#define OTV_NAME_ENTER( name )                             \
          FT_BEGIN_STMNT                                   \
            valid->debug_indent += 2;                      \
            FT_TRACE4(( "%*.s", valid->debug_indent, 0 )); \
            FT_TRACE4(( "%s table\n", name ));             \
          FT_END_STMNT

#define OTV_EXIT  valid->debug_indent -= 2

#define OTV_TRACE( s )                                     \
          FT_BEGIN_STMNT                                   \
            FT_TRACE4(( "%*.s", valid->debug_indent, 0 )); \
            FT_TRACE4( s );                                \
          FT_END_STMNT

#else   /* !FT_DEBUG_LEVEL_TRACE */

#define OTV_NEST1( x )                            \
          FT_BEGIN_STMNT                          \
            valid->nesting_level = 0;             \
            valid->func[0]       = OTV_FUNC( x ); \
          FT_END_STMNT

#define OTV_NEST2( x, y )                         \
          FT_BEGIN_STMNT                          \
            valid->nesting_level = 0;             \
            valid->func[0]       = OTV_FUNC( x ); \
            valid->func[1]       = OTV_FUNC( y ); \
          FT_END_STMNT

#define OTV_NEST3( x, y, z )                      \
          FT_BEGIN_STMNT                          \
            valid->nesting_level = 0;             \
            valid->func[0]       = OTV_FUNC( x ); \
            valid->func[1]       = OTV_FUNC( y ); \
            valid->func[2]       = OTV_FUNC( z ); \
          FT_END_STMNT

#define OTV_INIT                do ; while ( 0 )
#define OTV_ENTER               do ; while ( 0 )
#define OTV_NAME_ENTER( name )  do ; while ( 0 )
#define OTV_EXIT                do ; while ( 0 )

#define OTV_TRACE( s )          do ; while ( 0 )

#endif  /* !FT_DEBUG_LEVEL_TRACE */


#define OTV_RUN  valid->func[0]


  /*************************************************************************/
  /*************************************************************************/
  /*****                                                               *****/
  /*****                       COVERAGE TABLE                          *****/
  /*****                                                               *****/
  /*************************************************************************/
  /*************************************************************************/

  FT_LOCAL( void )
  otv_Coverage_validate( FT_Bytes       table,
                         OTV_Validator  valid );

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩二区三区四区| 国产精品嫩草99a| 三级欧美在线一区| 久久网站热最新地址| 色综合天天综合网国产成人综合天| 亚洲成人黄色小说| 亚洲国产精华液网站w| 欧美一区二区日韩| 色天使久久综合网天天| 国产精品123| 久久av老司机精品网站导航| 依依成人综合视频| 国产蜜臀97一区二区三区| 欧美一区二区三区喷汁尤物| 色哟哟精品一区| 99re成人精品视频| 国产成人av电影免费在线观看| 麻豆成人在线观看| 日韩成人免费在线| 免费观看一级特黄欧美大片| 午夜日韩在线观看| 天天综合日日夜夜精品| 亚洲大型综合色站| 一区二区三区免费| 亚洲国产精品人人做人人爽| 午夜精品久久久久久不卡8050| 亚洲一区二区在线免费观看视频| 一区二区三区产品免费精品久久75| 成人欧美一区二区三区视频网页| 欧美国产日产图区| 国产精品久久久久一区二区三区共| 国产欧美一区二区精品性| 欧美激情一区在线| 最新国产の精品合集bt伙计| 亚洲精品免费在线观看| 国产精品美日韩| 日韩视频免费观看高清完整版在线观看 | 国内不卡的二区三区中文字幕| 蜜臀99久久精品久久久久久软件| 国精产品一区一区三区mba视频 | 另类小说图片综合网| 国产乱理伦片在线观看夜一区| 成人av网站免费| 欧美日韩久久一区| 国产欧美日韩在线| 亚洲成人免费观看| 国产精品中文欧美| 欧美色国产精品| 日韩欧美在线综合网| 亚洲一区日韩精品中文字幕| 天堂精品中文字幕在线| 国产成人精品亚洲日本在线桃色| 99精品久久99久久久久| 欧美大片在线观看一区二区| 国产精品国产三级国产普通话99| 五月婷婷综合网| 91亚洲精品一区二区乱码| 在线成人小视频| 夜夜嗨av一区二区三区| 国产成人8x视频一区二区| 9191国产精品| 亚洲va在线va天堂| 91视视频在线观看入口直接观看www | 日韩一区二区三区三四区视频在线观看 | 国产精品福利在线播放| 亚洲福利一区二区| 欧美色窝79yyyycom| 亚洲裸体xxx| 91丨porny丨户外露出| 国产精品免费av| 成人av资源站| 国产精品久久毛片a| 大胆亚洲人体视频| 欧美激情综合五月色丁香| 国产成人综合在线播放| 亚洲精品一区二区在线观看| 蜜桃视频在线观看一区二区| 91精品国产麻豆| 美女国产一区二区| 国产日韩欧美亚洲| 在线观看视频91| 亚洲精品成人少妇| 91看片淫黄大片一级在线观看| 国产精品久久99| 欧美亚洲禁片免费| 麻豆一区二区三区| 久久久高清一区二区三区| 成人永久看片免费视频天堂| 亚洲精品自拍动漫在线| 欧美日韩在线观看一区二区| 喷水一区二区三区| 国产精品每日更新在线播放网址 | 91精品国产色综合久久不卡蜜臀| 日本不卡免费在线视频| 久久久久亚洲蜜桃| 91原创在线视频| 韩日精品视频一区| 中文一区二区在线观看 | 色94色欧美sute亚洲线路二| 亚洲第一福利一区| 国产精品久久久久久久久动漫| 欧美性xxxxx极品少妇| 国产精品69久久久久水密桃| 亚洲曰韩产成在线| www国产精品av| 欧美一区二区三区四区视频| 日本韩国精品在线| 国产一级精品在线| 日韩av电影免费观看高清完整版在线观看| 久久综合中文字幕| 欧美一级二级三级蜜桃| 99精品视频中文字幕| 国产麻豆9l精品三级站| 无码av免费一区二区三区试看| 日韩美女精品在线| 久久精品一区蜜桃臀影院| 欧美一二三区精品| 精品1区2区3区| 在线免费观看成人短视频| 99在线精品观看| 成人在线一区二区三区| 国产成人精品免费网站| 国产精品69毛片高清亚洲| 久久精品国产亚洲aⅴ| 丝袜美腿高跟呻吟高潮一区| 亚洲国产精品人人做人人爽| 亚洲综合激情网| 亚洲综合成人网| 亚洲精品国产无套在线观| 亚洲色图欧美偷拍| 亚洲精品日产精品乱码不卡| 亚洲天堂网中文字| 亚洲欧洲精品成人久久奇米网| 欧美一区二区三区人| 日韩午夜电影av| 久久久不卡网国产精品一区| 国产精品入口麻豆九色| 1024亚洲合集| 亚洲综合色丁香婷婷六月图片| 天堂蜜桃91精品| 国内成+人亚洲+欧美+综合在线| 国产成人免费视频精品含羞草妖精| 粉嫩欧美一区二区三区高清影视 | 欧美午夜精品久久久| 91麻豆精品国产无毒不卡在线观看 | 喷白浆一区二区| 美女被吸乳得到大胸91| 国产经典欧美精品| 欧美日韩激情一区| 久久精品亚洲乱码伦伦中文| 亚洲国产视频直播| 激情av综合网| 欧美性色综合网| 国产欧美视频一区二区三区| 一区二区免费看| 不卡欧美aaaaa| 亚洲精品在线一区二区| 亚洲v日本v欧美v久久精品| 丁香另类激情小说| 亚洲精品一区二区三区香蕉| 亚洲一区二区在线免费观看视频| 精品亚洲成a人| 欧美日韩精品免费| 亚洲丝袜另类动漫二区| 国产成人免费视频精品含羞草妖精| 欧美日韩高清一区二区不卡| 国产精品色哟哟网站| 国产不卡视频在线播放| 精品噜噜噜噜久久久久久久久试看 | 五月婷婷综合网| 日本丰满少妇一区二区三区| 日本一区二区三区在线观看| 免费成人在线播放| 欧美精品久久天天躁| 亚洲在线视频网站| 欧美在线一区二区| 一区二区三区欧美视频| 91美女精品福利| 亚洲三级在线播放| 91国偷自产一区二区使用方法| 国产精品国产成人国产三级| 粉嫩久久99精品久久久久久夜| 久久只精品国产| 成人一区在线观看| 专区另类欧美日韩| 91成人免费在线| 亚洲综合免费观看高清完整版在线| 91在线porny国产在线看| 亚洲精品成人少妇| 欧美激情在线一区二区三区| 国产91精品欧美| 亚洲国产日韩在线一区模特| 日韩精品资源二区在线| 国产精品一区一区| 一区二区在线观看免费视频播放| 欧美日韩一区二区三区免费看| 天堂va蜜桃一区二区三区 | 欧美日韩在线播放一区| 蜜桃视频一区二区| 最新国产の精品合集bt伙计|