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

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

?? ftzopen.h

?? 智能設(shè)備中PDF閱讀器的源碼!用于windows mobile2003或者WM5以上
?? H
字號(hào):
/***************************************************************************/
/*                                                                         */
/*  ftzopen.h                                                              */
/*                                                                         */
/*    FreeType support for .Z compressed files.                            */
/*                                                                         */
/*  This optional component relies on NetBSD's zopen().  It should mainly  */
/*  be used to parse compressed PCF fonts, as found with many X11 server   */
/*  distributions.                                                         */
/*                                                                         */
/*  Copyright 2005, 2006 by David Turner.                                  */
/*                                                                         */
/*  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 __FT_ZOPEN_H__
#define __FT_ZOPEN_H__

#include <ft2build.h>
#include FT_FREETYPE_H


  /*
   *  This is a complete re-implementation of the LZW file reader,
   *  since the old one was incredibly badly written, using
   *  400 KByte of heap memory before decompressing anything.
   *
   */

#define FT_LZW_IN_BUFF_SIZE        64
#define FT_LZW_DEFAULT_STACK_SIZE  64

#define LZW_INIT_BITS     9
#define LZW_MAX_BITS      16

#define LZW_CLEAR         256
#define LZW_FIRST         257

#define LZW_BIT_MASK      0x1f
#define LZW_BLOCK_MASK    0x80
#define LZW_MASK( n )     ( ( 1U << (n) ) - 1U )


  typedef enum
  {
    FT_LZW_PHASE_START = 0,
    FT_LZW_PHASE_CODE,
    FT_LZW_PHASE_STACK,
    FT_LZW_PHASE_EOF

  } FT_LzwPhase;


  /*
   *  state of LZW decompressor
   *
   *  small technical note
   *  --------------------
   *
   *  We use a few tricks in this implementation that are explained here to
   *  ease debugging and maintenance.
   *
   *  - First of all, the `prefix' and `suffix' arrays contain the suffix
   *    and prefix for codes over 256; this means that
   *
   *      prefix_of(code) == state->prefix[code-256]
   *      suffix_of(code) == state->suffix[code-256]
   *
   *    Each prefix is a 16-bit code, and each suffix an 8-bit byte.
   *
   *    Both arrays are stored in a single memory block, pointed to by
   *    `state->prefix'.  This means that the following equality is always
   *    true:
   *
   *      state->suffix == (FT_Byte*)(state->prefix + state->prefix_size)
   *
   *    Of course, state->prefix_size is the number of prefix/suffix slots
   *    in the arrays, corresponding to codes 256..255+prefix_size.
   *
   *  - `free_ent' is the index of the next free entry in the `prefix'
   *    and `suffix' arrays.  This means that the corresponding `next free
   *    code' is really `256+free_ent'.
   *
   *    Moreover, `max_free' is the maximum value that `free_ent' can reach.
   *
   *    `max_free' corresponds to `(1 << max_bits) - 256'.  Note that this
   *    value is always <= 0xFF00, which means that both `free_ent' and
   *    `max_free' can be stored in an FT_UInt variable, even on 16-bit
   *    machines.
   *
   *    If `free_ent == max_free', you cannot add new codes to the
   *    prefix/suffix table.
   *
   *  - `num_bits' is the current number of code bits, starting at 9 and
   *    growing each time `free_ent' reaches the value of `free_bits'.  The
   *    latter is computed as follows
   *
   *      if num_bits < max_bits:
   *         free_bits = (1 << num_bits)-256
   *      else:
   *         free_bits = max_free + 1
   *
   *    Since the value of `max_free + 1' can never be reached by
   *    `free_ent', `num_bits' cannot grow larger than `max_bits'.
   */

  typedef struct  _FT_LzwStateRec
  {
    FT_LzwPhase  phase;

    FT_Int       in_eof;
    FT_Byte*     in_cursor;   /* current buffer pos   */
    FT_Byte*     in_limit;    /* current buffer limit */

    FT_UInt32    pad;         /* a pad value where incoming bits were read */
    FT_Int       pad_bits;    /* number of meaningful bits in pad value    */

    FT_UInt      max_bits;    /* max code bits, from file header   */
    FT_Int       block_mode;  /* block mode flag, from file header */
    FT_UInt      max_free;    /* (1 << max_bits) - 256             */

    FT_UInt      num_bits;    /* current code bit number */
    FT_UInt      free_ent;    /* index of next free entry */
    FT_UInt      free_bits;   /* if reached by free_ent, increment num_bits */
    FT_UInt      old_code;
    FT_UInt      old_char;
    FT_UInt      in_code;

    FT_UShort*   prefix;      /* always dynamically allocated / reallocated */
    FT_Byte*     suffix;      /* suffix = (FT_Byte*)(prefix + prefix_size)  */
    FT_UInt      prefix_size; /* number of slots in `prefix' or `suffix'    */

    FT_Byte*     stack;       /* character stack */
    FT_UInt      stack_top;
    FT_UInt      stack_size;

    FT_Byte      in_buff[FT_LZW_IN_BUFF_SIZE];       /* small read-buffer   */
    FT_Byte      stack_0[FT_LZW_DEFAULT_STACK_SIZE]; /* minimize heap alloc */

    FT_Stream    source;      /* source stream */
    FT_Memory    memory;

  } FT_LzwStateRec, *FT_LzwState;


  FT_LOCAL( void )
  ft_lzwstate_init( FT_LzwState  state,
                    FT_Stream    source );

  FT_LOCAL( void )
  ft_lzwstate_done( FT_LzwState  state );


  FT_LOCAL( void )
  ft_lzwstate_reset( FT_LzwState  state );


  FT_LOCAL( FT_ULong )
  ft_lzwstate_io( FT_LzwState  state,
                  FT_Byte*     buffer,
                  FT_ULong     out_size );

/* */

#endif /* __FT_ZOPEN_H__ */


/* END */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产.欧美.日韩| 91精品国产综合久久精品app| 免费不卡在线观看| 亚洲国产成人porn| 亚洲一区视频在线观看视频| 亚洲美女电影在线| 亚洲精品免费在线| 一区二区在线观看视频 | 天堂一区二区在线免费观看| 亚洲夂夂婷婷色拍ww47 | 91美女视频网站| 91美女片黄在线观看91美女| 99国产精品久久久久| 99在线视频精品| 91欧美一区二区| 欧美亚洲一区三区| 欧美日韩久久久久久| 欧美一级专区免费大片| 91精品国产乱码久久蜜臀| 欧美一级片免费看| 久久精品免视看| 亚洲色图视频免费播放| 亚洲国产视频直播| 免费高清在线视频一区·| 加勒比av一区二区| 成人美女视频在线看| 色哟哟在线观看一区二区三区| 在线一区二区三区四区五区 | 日韩欧美一区二区久久婷婷| 精品少妇一区二区三区在线播放| 日韩免费高清av| 久久久精品蜜桃| 欧美激情在线观看视频免费| 国产精品欧美一区喷水| 久久久久久久一区| 尤物视频一区二区| 天堂精品中文字幕在线| 精品一区二区三区在线观看国产| 国产精品综合网| 成人app软件下载大全免费| 91丝袜高跟美女视频| 在线观看成人小视频| 777奇米成人网| 精品剧情v国产在线观看在线| 久久男人中文字幕资源站| 欧美极品xxx| 亚洲黄色片在线观看| 午夜精品福利在线| 精品一区二区精品| 亚洲欧洲精品成人久久奇米网| 日韩西西人体444www| 精品成人在线观看| 国产精品女上位| 亚洲成人精品一区二区| 久久99精品国产| 成人av在线观| 欧美在线观看一区| 精品av久久707| 亚洲人成精品久久久久久| 日韩精品三区四区| 国产盗摄一区二区| 欧洲人成人精品| 日韩精品一区二区三区在线观看| 久久精子c满五个校花| 亚洲精品欧美在线| 蜜臀久久99精品久久久久宅男| 国产成人在线视频网站| 日本精品免费观看高清观看| 日韩午夜在线影院| 中文字幕在线不卡视频| 日本强好片久久久久久aaa| 国产精品一区2区| 欧美三级电影网站| 久久久精品国产99久久精品芒果 | 日韩成人免费看| 国产一区中文字幕| 欧美三区在线视频| 欧美极品aⅴ影院| 蜜臀精品一区二区三区在线观看 | 琪琪一区二区三区| 99精品偷自拍| 欧美精品一区二区三区四区 | 成人久久久精品乱码一区二区三区| 欧美日韩不卡在线| 综合亚洲深深色噜噜狠狠网站| 日本成人在线一区| 色婷婷国产精品| 久久久www成人免费毛片麻豆 | 亚洲午夜私人影院| 不卡影院免费观看| 日韩欧美一区在线观看| 一区二区三区欧美| 国产成人精品在线看| 91精品国产一区二区三区| 亚洲男同性恋视频| 国产成人精品综合在线观看| 欧美一级生活片| 午夜一区二区三区视频| 97精品久久久久中文字幕| 久久久久久久久蜜桃| 日日嗨av一区二区三区四区| 91亚洲大成网污www| 国产蜜臀av在线一区二区三区| 美日韩一级片在线观看| 欧美日韩精品一区视频| 中文字幕亚洲电影| 国产在线精品免费| 久久亚洲捆绑美女| 紧缚奴在线一区二区三区| 欧美一区二区三区视频| 18涩涩午夜精品.www| 成人激情开心网| 国产亚洲精久久久久久| 精品无人码麻豆乱码1区2区| 日韩亚洲国产中文字幕欧美| 丝袜亚洲另类丝袜在线| 欧美熟乱第一页| 一区二区在线观看视频 | 欧洲一区二区三区在线| 亚洲激情欧美激情| 在线观看日韩国产| 亚洲一区二区三区四区中文字幕| 91丝袜美女网| 夜夜揉揉日日人人青青一国产精品| 成人免费高清视频| 亚洲丝袜另类动漫二区| 成人激情av网| 亚洲色欲色欲www| 色婷婷精品大视频在线蜜桃视频 | 亚洲黄色在线视频| 99国产精品国产精品毛片| 亚洲最大成人网4388xx| 欧美色网一区二区| 偷拍一区二区三区| 日韩一区二区三区视频| 卡一卡二国产精品| 久久综合九色综合欧美98| 国产麻豆精品在线| 中文字幕国产精品一区二区| 成人免费av在线| 亚洲一区精品在线| 欧美一区二区三区免费观看视频| 人禽交欧美网站| 久久影音资源网| 成人av第一页| 亚洲欧美一区二区三区极速播放| 欧美三片在线视频观看| 美女网站视频久久| 国产无一区二区| 一本色道久久综合亚洲91| 亚洲v中文字幕| 精品国产一区a| 成人一二三区视频| 亚洲成精国产精品女| 欧美不卡视频一区| 国产福利电影一区二区三区| 最新国产成人在线观看| 欧美丰满一区二区免费视频| 极品瑜伽女神91| 亚洲啪啪综合av一区二区三区| 欧美色电影在线| 国产乱码一区二区三区| 亚洲日本电影在线| 91精品福利在线一区二区三区| 国产一区二区三区免费播放| 亚洲欧美日韩国产综合| 欧美福利视频一区| 粉嫩高潮美女一区二区三区 | 亚洲.国产.中文慕字在线| 日韩精品一区在线| 91色综合久久久久婷婷| 日韩av不卡在线观看| 欧美激情一区在线观看| 欧美精品一级二级三级| 高清在线成人网| 天天色天天爱天天射综合| 欧美激情在线一区二区| 717成人午夜免费福利电影| 国内精品久久久久影院色| 亚洲人吸女人奶水| 欧美v亚洲v综合ⅴ国产v| 99re热这里只有精品免费视频| 免费久久99精品国产| 中文字幕一区二区三区乱码在线| 777xxx欧美| 色老头久久综合| 国产福利一区二区三区视频在线| 香蕉久久夜色精品国产使用方法 | 久久精品欧美一区二区三区麻豆| 91成人免费网站| 国产成人免费视| 美国精品在线观看| 亚洲宅男天堂在线观看无病毒| 欧美国产欧美综合| 欧美一级淫片007| av高清不卡在线| 视频在线观看国产精品| 国产精品美女久久久久久久久| 欧美一区二区精品| 欧美日韩在线三区|