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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? ftcmru.h

?? 智能設(shè)備中PDF閱讀器的源碼!用于windows mobile2003或者WM5以上
?? H
字號(hào):
/***************************************************************************/
/*                                                                         */
/*  ftcmru.h                                                               */
/*                                                                         */
/*    Simple MRU list-cache (specification).                               */
/*                                                                         */
/*  Copyright 2000-2001, 2003, 2004, 2005, 2006 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.                                        */
/*                                                                         */
/***************************************************************************/


  /*************************************************************************/
  /*                                                                       */
  /* An MRU is a list that cannot hold more than a certain number of       */
  /* elements (`max_elements').  All elements in the list are sorted in    */
  /* least-recently-used order, i.e., the `oldest' element is at the tail  */
  /* of the list.                                                          */
  /*                                                                       */
  /* When doing a lookup (either through `Lookup()' or `Lookup_Node()'),   */
  /* the list is searched for an element with the corresponding key.  If   */
  /* it is found, the element is moved to the head of the list and is      */
  /* returned.                                                             */
  /*                                                                       */
  /* If no corresponding element is found, the lookup routine will try to  */
  /* obtain a new element with the relevant key.  If the list is already   */
  /* full, the oldest element from the list is discarded and replaced by a */
  /* new one; a new element is added to the list otherwise.                */
  /*                                                                       */
  /* Note that it is possible to pre-allocate the element list nodes.      */
  /* This is handy if `max_elements' is sufficiently small, as it saves    */
  /* allocations/releases during the lookup process.                       */
  /*                                                                       */
  /*************************************************************************/


#ifndef __FTCMRU_H__
#define __FTCMRU_H__


#include <ft2build.h>
#include FT_FREETYPE_H

#ifdef FREETYPE_H
#error "freetype.h of FreeType 1 has been loaded!"
#error "Please fix the directory search order for header files"
#error "so that freetype.h of FreeType 2 is found first."
#endif

#define  xxFT_DEBUG_ERROR
#define  FTC_INLINE

FT_BEGIN_HEADER

  typedef struct FTC_MruNodeRec_*  FTC_MruNode;

  typedef struct  FTC_MruNodeRec_
  {
    FTC_MruNode  next;
    FTC_MruNode  prev;

  } FTC_MruNodeRec;


  FT_LOCAL( void )
  FTC_MruNode_Prepend( FTC_MruNode  *plist,
                       FTC_MruNode   node );

  FT_LOCAL( void )
  FTC_MruNode_Up( FTC_MruNode  *plist,
                  FTC_MruNode   node );

  FT_LOCAL( void )
  FTC_MruNode_Remove( FTC_MruNode  *plist,
                      FTC_MruNode   node );


  typedef struct FTC_MruListRec_*              FTC_MruList;

  typedef struct FTC_MruListClassRec_ const *  FTC_MruListClass;


  typedef FT_Bool
  (*FTC_MruNode_CompareFunc)( FTC_MruNode  node,
                              FT_Pointer   key );

  typedef FT_Error
  (*FTC_MruNode_InitFunc)( FTC_MruNode  node,
                           FT_Pointer   key,
                           FT_Pointer   data );

  typedef FT_Error
  (*FTC_MruNode_ResetFunc)( FTC_MruNode  node,
                            FT_Pointer   key,
                            FT_Pointer   data );

  typedef void
  (*FTC_MruNode_DoneFunc)( FTC_MruNode  node,
                           FT_Pointer   data );


  typedef struct  FTC_MruListClassRec_
  {
    FT_UInt                  node_size;
    FTC_MruNode_CompareFunc  node_compare;
    FTC_MruNode_InitFunc     node_init;
    FTC_MruNode_ResetFunc    node_reset;
    FTC_MruNode_DoneFunc     node_done;

  } FTC_MruListClassRec;

  typedef struct  FTC_MruListRec_
  {
    FT_UInt              num_nodes;
    FT_UInt              max_nodes;
    FTC_MruNode          nodes;
    FT_Pointer           data;
    FTC_MruListClassRec  clazz;
    FT_Memory            memory;

  } FTC_MruListRec;


  FT_LOCAL( void )
  FTC_MruList_Init( FTC_MruList       list,
                    FTC_MruListClass  clazz,
                    FT_UInt           max_nodes,
                    FT_Pointer        data,
                    FT_Memory         memory );

  FT_LOCAL( void )
  FTC_MruList_Reset( FTC_MruList  list );


  FT_LOCAL( void )
  FTC_MruList_Done( FTC_MruList  list );


  FT_LOCAL( FT_Error )
  FTC_MruList_New( FTC_MruList   list,
                   FT_Pointer    key,
                   FTC_MruNode  *anode );

  FT_LOCAL( void )
  FTC_MruList_Remove( FTC_MruList  list,
                      FTC_MruNode  node );

  FT_LOCAL( void )
  FTC_MruList_RemoveSelection( FTC_MruList              list,
                               FTC_MruNode_CompareFunc  selection,
                               FT_Pointer               key );


#ifdef FTC_INLINE

#define FTC_MRULIST_LOOKUP_CMP( list, key, compare, node, error )           \
  FT_BEGIN_STMNT                                                            \
    FTC_MruNode*             _pfirst  = &(list)->nodes;                     \
    FTC_MruNode_CompareFunc  _compare = (FTC_MruNode_CompareFunc)(compare); \
    FTC_MruNode              _first, _node, *_pnode;                        \
                                                                            \
                                                                            \
    error  = 0;                                                             \
    _first = *(_pfirst);                                                    \
    _node  = NULL;                                                          \
                                                                            \
    if ( _first )                                                           \
    {                                                                       \
      _node = _first;                                                       \
      do                                                                    \
      {                                                                     \
        if ( _compare( _node, (key) ) )                                     \
        {                                                                   \
          if ( _node != _first )                                            \
            FTC_MruNode_Up( _pfirst, _node );                               \
                                                                            \
          _pnode = (FTC_MruNode*)(void*)&(node);                            \
          *_pnode = _node;                                                  \
          goto _MruOk;                                                      \
        }                                                                   \
        _node = _node->next;                                                \
                                                                            \
      } while ( _node != _first) ;                                          \
    }                                                                       \
                                                                            \
    error = FTC_MruList_New( (list), (key), (FTC_MruNode*)(void*)&(node) ); \
  _MruOk:                                                                   \
    ;                                                                       \
  FT_END_STMNT

#define FTC_MRULIST_LOOKUP( list, key, node, error ) \
  FTC_MRULIST_LOOKUP_CMP( list, key, (list)->clazz.node_compare, node, error )

#else  /* !FTC_INLINE */

  FT_LOCAL( FTC_MruNode )
  FTC_MruList_Find( FTC_MruList  list,
                    FT_Pointer   key );

  FT_LOCAL( FT_Error )
  FTC_MruList_Lookup( FTC_MruList   list,
                      FT_Pointer    key,
                      FTC_MruNode  *pnode );

#define FTC_MRULIST_LOOKUP( list, key, node, error ) \
  error = FTC_MruList_Lookup( (list), (key), (FTC_MruNode*)&(node) )

#endif /* !FTC_INLINE */


#define FTC_MRULIST_LOOP( list, node )        \
  FT_BEGIN_STMNT                              \
    FTC_MruNode  _first = (list)->nodes;      \
                                              \
                                              \
    if ( _first )                             \
    {                                         \
      FTC_MruNode  _node = _first;            \
                                              \
                                              \
      do                                      \
      {                                       \
        *(FTC_MruNode*)&(node) = _node;


#define FTC_MRULIST_LOOP_END()               \
        _node = _node->next;                 \
                                             \
      } while ( _node != _first );           \
    }                                        \
  FT_END_STMNT

 /* */

FT_END_HEADER


#endif /* __FTCMRU_H__ */


/* END */

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美性受极品xxxx喷水| 精品国产精品一区二区夜夜嗨| 一级精品视频在线观看宜春院| 色狠狠综合天天综合综合| 亚洲精品菠萝久久久久久久| 日本韩国视频一区二区| 亚洲午夜精品在线| 337p亚洲精品色噜噜噜| 国产主播一区二区| 中文字幕高清一区| 91国产丝袜在线播放| 天天做天天摸天天爽国产一区| 欧美一区二区成人| 国产成人在线观看免费网站| 亚洲欧洲一区二区三区| 欧美视频中文字幕| 麻豆成人免费电影| 亚洲国产成人一区二区三区| 一本久久a久久精品亚洲| 亚洲va国产va欧美va观看| 欧美xxxxx裸体时装秀| 粉嫩13p一区二区三区| 亚洲乱码国产乱码精品精小说| 欧美日韩综合一区| 久久99久久久欧美国产| 亚洲欧洲日韩综合一区二区| 欧美日韩一区二区三区高清| 精品一区二区三区蜜桃| 国产精品久久综合| 欧美日本免费一区二区三区| 国产乱对白刺激视频不卡| 自拍偷在线精品自拍偷无码专区| 欧美日韩一本到| 国产一区二区三区日韩| 亚洲精选在线视频| 日韩欧美久久久| 成人污视频在线观看| 午夜免费欧美电影| 欧美激情在线一区二区三区| 欧美日韩色一区| 国产精品69久久久久水密桃| 夜夜精品视频一区二区| 精品国产乱码久久久久久图片 | 91精品久久久久久久99蜜桃 | 91精品综合久久久久久| 国产黄人亚洲片| 一区二区成人在线视频| 欧美精品一区视频| 色老头久久综合| 国产成人精品亚洲777人妖| 亚洲午夜羞羞片| 久久亚区不卡日本| 欧美手机在线视频| 国产·精品毛片| 日韩电影在线观看一区| 综合网在线视频| 欧美videossexotv100| 在线这里只有精品| 国产白丝网站精品污在线入口| 亚洲高清免费视频| 国产精品成人免费在线| 日韩欧美国产午夜精品| 一本一道综合狠狠老| 国产乱子轮精品视频| 五月婷婷综合在线| 亚洲天堂2014| 久久影院视频免费| 欧美精品一二三四| 色综合久久88色综合天天免费| 国产美女精品一区二区三区| 日韩精品五月天| 一区二区三区四区在线免费观看| 久久久久高清精品| 欧美一级理论片| 欧美精三区欧美精三区| 91在线观看污| 国产激情精品久久久第一区二区 | 亚洲午夜精品网| 最新久久zyz资源站| 国产亚洲一区二区三区四区| 三级亚洲高清视频| 亚洲精选一二三| 综合色中文字幕| 亚洲国产精品传媒在线观看| 久久综合九色综合欧美就去吻| 欧美精品粉嫩高潮一区二区| 欧美综合视频在线观看| av成人老司机| 国产91高潮流白浆在线麻豆| 狠狠网亚洲精品| 美女看a上一区| 日本欧美一区二区在线观看| 香蕉成人啪国产精品视频综合网 | 国产精品电影院| 国产午夜精品一区二区三区嫩草 | fc2成人免费人成在线观看播放 | 亚洲视频一区在线观看| 欧美国产日产图区| 欧美国产综合色视频| 国产亚洲欧美激情| 久久久国产午夜精品| 精品奇米国产一区二区三区| 91精品综合久久久久久| 3751色影院一区二区三区| 欧美一区日本一区韩国一区| 7777精品久久久大香线蕉| 欧美老年两性高潮| 在线播放中文字幕一区| 制服丝袜中文字幕一区| 欧美一区二区三区在线视频 | 精品国一区二区三区| 日韩视频免费观看高清完整版在线观看| 欧美日韩精品欧美日韩精品| 欧美日韩一区二区三区四区| 欧美日韩卡一卡二| 欧美精品九九99久久| 欧美一区二区国产| 精品日韩一区二区| 337p日本欧洲亚洲大胆精品| 久久久精品人体av艺术| 欧美激情一区三区| 成人免费在线观看入口| 91免费在线视频观看| 一本大道久久a久久精品综合| 91欧美一区二区| 欧美日韩一区二区欧美激情| 日韩一区二区三区电影在线观看| 欧美一区二区黄色| 久久久久久久久蜜桃| 中文幕一区二区三区久久蜜桃| 国产精品久久毛片av大全日韩| 亚洲欧洲综合另类| 亚洲国产裸拍裸体视频在线观看乱了 | 奇米色777欧美一区二区| 奇米精品一区二区三区在线观看| 精品在线免费观看| 国产91高潮流白浆在线麻豆| 色综合久久天天| 欧美日本视频在线| 久久久久免费观看| 亚洲丝袜另类动漫二区| 亚洲国产成人va在线观看天堂 | 香蕉成人伊视频在线观看| 蜜桃视频一区二区| 国产成人午夜精品影院观看视频 | 国产精品毛片a∨一区二区三区| 日韩毛片精品高清免费| 亚洲国产精品久久久男人的天堂| 麻豆国产欧美日韩综合精品二区 | 久久国产三级精品| 成人精品高清在线| 欧美性色欧美a在线播放| 欧美电视剧在线看免费| www.性欧美| 欧美理论电影在线| 久久久国产精品不卡| 亚洲欧美另类久久久精品2019| 日韩精品三区四区| 成人小视频免费在线观看| 欧美午夜一区二区三区免费大片| 欧美xxx久久| 亚洲天堂福利av| 久久精品国产久精国产| 9久草视频在线视频精品| 在线电影一区二区三区| 国产日韩在线不卡| 亚洲国产精品欧美一二99| 国产高清精品网站| 欧美午夜一区二区三区| 久久久久久久久99精品| 一区二区三区在线视频观看| 麻豆久久久久久久| 色婷婷一区二区| 精品动漫一区二区三区在线观看| 亚洲人精品一区| 青草av.久久免费一区| 91麻豆免费在线观看| 日韩美女视频在线| 一区二区三区在线视频免费| 国产麻豆精品一区二区| 欧美色网站导航| 日本一区二区久久| 蜜臀av一区二区在线免费观看| 99久久精品费精品国产一区二区| 日韩一区二区三区精品视频| 一区二区三区在线视频免费 | 亚洲精品乱码久久久久久久久| 久久精品二区亚洲w码| 91国产成人在线| 久久久久88色偷偷免费| 日本不卡高清视频| 色成人在线视频| 国产欧美精品一区| 久久精品国产**网站演员| 欧美日韩国产a| 亚洲欧洲av色图| 国产激情一区二区三区四区| 欧美一区二区三区在线看| 亚洲午夜私人影院| 色综合久久中文字幕|