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

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

?? cffdrivr.c

?? 智能設備中PDF閱讀器的源碼!用于windows mobile2003或者WM5以上
?? C
?? 第 1 頁 / 共 2 頁
字號:
/***************************************************************************/
/*                                                                         */
/*  cffdrivr.c                                                             */
/*                                                                         */
/*    OpenType font driver implementation (body).                          */
/*                                                                         */
/*  Copyright 1996-2001, 2002, 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.                                        */
/*                                                                         */
/***************************************************************************/


#include <ft2build.h>
#include FT_FREETYPE_H
#include FT_INTERNAL_DEBUG_H
#include FT_INTERNAL_STREAM_H
#include FT_INTERNAL_SFNT_H
#include FT_TRUETYPE_IDS_H
#include FT_SERVICE_POSTSCRIPT_CMAPS_H
#include FT_SERVICE_POSTSCRIPT_INFO_H
#include FT_SERVICE_TT_CMAP_H

#include "cffdrivr.h"
#include "cffgload.h"
#include "cffload.h"
#include "cffcmap.h"

#include "cfferrs.h"

#include FT_SERVICE_XFREE86_NAME_H
#include FT_SERVICE_GLYPH_DICT_H

  /*************************************************************************/
  /*                                                                       */
  /* The macro FT_COMPONENT is used in trace mode.  It is an implicit      */
  /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log  */
  /* messages during execution.                                            */
  /*                                                                       */
#undef  FT_COMPONENT
#define FT_COMPONENT  trace_cffdriver


  /*************************************************************************/
  /*************************************************************************/
  /*************************************************************************/
  /****                                                                 ****/
  /****                                                                 ****/
  /****                          F A C E S                              ****/
  /****                                                                 ****/
  /****                                                                 ****/
  /*************************************************************************/
  /*************************************************************************/
  /*************************************************************************/


#undef  PAIR_TAG
#define PAIR_TAG( left, right )  ( ( (FT_ULong)left << 16 ) | \
                                     (FT_ULong)right        )


  /*************************************************************************/
  /*                                                                       */
  /* <Function>                                                            */
  /*    cff_get_kerning                                                    */
  /*                                                                       */
  /* <Description>                                                         */
  /*    A driver method used to return the kerning vector between two      */
  /*    glyphs of the same face.                                           */
  /*                                                                       */
  /* <Input>                                                               */
  /*    face        :: A handle to the source face object.                 */
  /*                                                                       */
  /*    left_glyph  :: The index of the left glyph in the kern pair.       */
  /*                                                                       */
  /*    right_glyph :: The index of the right glyph in the kern pair.      */
  /*                                                                       */
  /* <Output>                                                              */
  /*    kerning     :: The kerning vector.  This is in font units for      */
  /*                   scalable formats, and in pixels for fixed-sizes     */
  /*                   formats.                                            */
  /*                                                                       */
  /* <Return>                                                              */
  /*    FreeType error code.  0 means success.                             */
  /*                                                                       */
  /* <Note>                                                                */
  /*    Only horizontal layouts (left-to-right & right-to-left) are        */
  /*    supported by this function.  Other layouts, or more sophisticated  */
  /*    kernings, are out of scope of this method (the basic driver        */
  /*    interface is meant to be simple).                                  */
  /*                                                                       */
  /*    They can be implemented by format-specific interfaces.             */
  /*                                                                       */
  FT_CALLBACK_DEF( FT_Error )
  cff_get_kerning( FT_Face     ttface,          /* TT_Face */
                   FT_UInt     left_glyph,
                   FT_UInt     right_glyph,
                   FT_Vector*  kerning )
  {
    TT_Face       face = (TT_Face)ttface;
    SFNT_Service  sfnt = (SFNT_Service)face->sfnt;


    kerning->x = 0;
    kerning->y = 0;

    if ( sfnt )
      kerning->x = sfnt->get_kerning( face, left_glyph, right_glyph );

    return CFF_Err_Ok;
  }


#undef PAIR_TAG


  /*************************************************************************/
  /*                                                                       */
  /* <Function>                                                            */
  /*    Load_Glyph                                                         */
  /*                                                                       */
  /* <Description>                                                         */
  /*    A driver method used to load a glyph within a given glyph slot.    */
  /*                                                                       */
  /* <Input>                                                               */
  /*    slot        :: A handle to the target slot object where the glyph  */
  /*                   will be loaded.                                     */
  /*                                                                       */
  /*    size        :: A handle to the source face size at which the glyph */
  /*                   must be scaled, loaded, etc.                        */
  /*                                                                       */
  /*    glyph_index :: The index of the glyph in the font file.            */
  /*                                                                       */
  /*    load_flags  :: A flag indicating what to load for this glyph.  The */
  /*                   FT_LOAD_??? constants can be used to control the    */
  /*                   glyph loading process (e.g., whether the outline    */
  /*                   should be scaled, whether to load bitmaps or not,   */
  /*                   whether to hint the outline, etc).                  */
  /*                                                                       */
  /* <Return>                                                              */
  /*    FreeType error code.  0 means success.                             */
  /*                                                                       */
  FT_CALLBACK_DEF( FT_Error )
  Load_Glyph( FT_GlyphSlot  cffslot,        /* CFF_GlyphSlot */
              FT_Size       cffsize,        /* CFF_Size      */
              FT_UInt       glyph_index,
              FT_Int32      load_flags )
  {
    FT_Error  error;
    CFF_GlyphSlot  slot = (CFF_GlyphSlot)cffslot;
    CFF_Size       size = (CFF_Size)cffsize;


    if ( !slot )
      return CFF_Err_Invalid_Slot_Handle;

    /* check whether we want a scaled outline or bitmap */
    if ( !size )
      load_flags |= FT_LOAD_NO_SCALE | FT_LOAD_NO_HINTING;

    if ( load_flags & FT_LOAD_NO_SCALE )
      size = NULL;

    /* reset the size object if necessary */
    if ( size )
    {
      /* these two objects must have the same parent */
      if ( cffsize->face != cffslot->face )
        return CFF_Err_Invalid_Face_Handle;
    }

    /* now load the glyph outline if necessary */
    error = cff_slot_load( slot, size, glyph_index, load_flags );

    /* force drop-out mode to 2 - irrelevant now */
    /* slot->outline.dropout_mode = 2; */

    return error;
  }


 /*
  *  GLYPH DICT SERVICE
  *
  */

  static FT_Error
  cff_get_glyph_name( CFF_Face    face,
                      FT_UInt     glyph_index,
                      FT_Pointer  buffer,
                      FT_UInt     buffer_max )
  {
    CFF_Font            font   = (CFF_Font)face->extra.data;
    FT_Memory           memory = FT_FACE_MEMORY( face );
    FT_String*          gname;
    FT_UShort           sid;
    FT_Service_PsCMaps  psnames;
    FT_Error            error;


    FT_FACE_FIND_GLOBAL_SERVICE( face, psnames, POSTSCRIPT_CMAPS );
    if ( !psnames )
    {
      FT_ERROR(( "cff_get_glyph_name:" ));
      FT_ERROR(( " cannot get glyph name from CFF & CEF fonts\n" ));
      FT_ERROR(( "                   " ));
      FT_ERROR(( " without the `PSNames' module\n" ));
      error = CFF_Err_Unknown_File_Format;
      goto Exit;
    }

    /* first, locate the sid in the charset table */
    sid = font->charset.sids[glyph_index];

    /* now, lookup the name itself */
    gname = cff_index_get_sid_string( &font->string_index, sid, psnames );

    if ( gname && buffer_max > 0 )
    {
      FT_UInt  len = (FT_UInt)ft_strlen( gname );


      if ( len >= buffer_max )
        len = buffer_max - 1;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品一区二区三区蜜桃下载| 天天综合网天天综合色| 日韩欧美国产系列| 91麻豆精品国产无毒不卡在线观看| 99久久伊人网影院| caoporen国产精品视频| 91日韩一区二区三区| 99久久99久久久精品齐齐| 日韩av在线发布| 日韩欧美一区电影| 91精品欧美一区二区三区综合在| 91福利资源站| 91精品国产综合久久久久久漫画| 欧美美女黄视频| 精品国产乱码久久久久久夜甘婷婷| 欧美国产日产图区| 中文字幕精品一区二区三区精品| 中文字幕亚洲综合久久菠萝蜜| 亚洲视频香蕉人妖| 亚洲成a人片在线不卡一二三区| 欧美aaa在线| 经典三级视频一区| 日韩欧美卡一卡二| 日韩精品自拍偷拍| 国产色一区二区| 国产精品福利一区二区三区| 成人免费一区二区三区视频| 亚洲线精品一区二区三区八戒| 日本va欧美va欧美va精品| 国产成人精品免费一区二区| 99re6这里只有精品视频在线观看| 欧美在线观看18| 久久久综合网站| 夜夜嗨av一区二区三区四季av | 亚洲综合一区二区精品导航| 久久综合五月天婷婷伊人| 国产亚洲女人久久久久毛片| 亚洲精品日产精品乱码不卡| 麻豆国产欧美日韩综合精品二区 | 亚洲图片激情小说| 奇米影视一区二区三区小说| 国产激情91久久精品导航| 欧美视频一区二区三区| 国产视频一区二区在线| 日韩黄色一级片| 日韩欧美一级在线播放| 亚洲精品综合在线| 国产主播一区二区| 欧美精品一二三| 亚洲男同性视频| 国产精品自拍一区| 欧美一级精品在线| 亚洲精品伦理在线| 福利电影一区二区| 精品少妇一区二区三区在线视频| 日本三级亚洲精品| 99久久婷婷国产精品综合| 日韩精品一区二区三区四区视频| 亚洲国产视频一区二区| av在线播放不卡| 国产色产综合色产在线视频| 九九精品一区二区| 91麻豆精品国产91久久久资源速度| 亚洲视频你懂的| 成人黄色片在线观看| 国产欧美一区二区在线| 美女在线视频一区| 91精品国产色综合久久ai换脸| 亚洲欧美视频在线观看| 99精品视频在线观看| 国产精品人人做人人爽人人添| 国产乱对白刺激视频不卡| 欧美精品一区在线观看| 激情综合亚洲精品| 精品av久久707| 国产精品1区2区3区在线观看| 欧美videofree性高清杂交| 开心九九激情九九欧美日韩精美视频电影 | 亚洲午夜三级在线| 日本高清免费不卡视频| 一区二区久久久久久| 91福利在线观看| 午夜精品久久久久影视| 欧美一区二区在线不卡| 麻豆一区二区99久久久久| 欧美大黄免费观看| 国产精选一区二区三区| 亚洲欧美综合网| 欧美精品在线视频| 精品一区二区免费在线观看| 国产亚洲一区二区三区在线观看| 成人看片黄a免费看在线| 一区二区三区中文字幕精品精品| 欧美亚洲图片小说| 精品在线观看视频| 中文av一区二区| 欧美视频在线一区二区三区| 日韩中文字幕91| 国产视频不卡一区| 欧美私模裸体表演在线观看| 免费观看成人鲁鲁鲁鲁鲁视频| 久久久午夜精品理论片中文字幕| 9久草视频在线视频精品| 亚洲高清视频的网址| 精品国产免费人成电影在线观看四季 | 国产在线视频不卡二| 国产精品视频线看| 欧美三级视频在线| 粉嫩av一区二区三区粉嫩| 亚洲综合色成人| 国产亚洲欧洲一区高清在线观看| 在线亚洲一区二区| 精久久久久久久久久久| 亚洲日本护士毛茸茸| 日韩免费一区二区| 欧美性猛交xxxx黑人交| 国产精品一区二区视频| 偷窥国产亚洲免费视频| 国产精品国产三级国产有无不卡| 欧美精品三级日韩久久| 91免费看视频| 国产成人小视频| 蜜臀av性久久久久蜜臀av麻豆| 中文字幕制服丝袜成人av| 日韩一区二区三区精品视频| 色综合久久88色综合天天| 国产麻豆91精品| 婷婷中文字幕一区三区| 亚洲日本va午夜在线影院| 国产偷国产偷精品高清尤物 | 黑人精品欧美一区二区蜜桃| 亚洲国产综合人成综合网站| 国产精品灌醉下药二区| www一区二区| 日韩欧美国产午夜精品| 欧美日韩一本到| 色综合欧美在线视频区| 国产99久久久国产精品潘金| 久色婷婷小香蕉久久| 日本不卡中文字幕| 亚洲成人在线免费| 亚洲va天堂va国产va久| 亚洲午夜久久久久久久久久久 | 久久精品欧美一区二区三区不卡| 91精品国产一区二区三区香蕉| 欧美三级午夜理伦三级中视频| 91免费看`日韩一区二区| 欧美一区二区三区啪啪| 91麻豆精品91久久久久同性| 欧美三级乱人伦电影| 欧美专区日韩专区| 欧美三级韩国三级日本一级| 欧美日韩在线播| 欧美日韩久久不卡| 91精品一区二区三区久久久久久 | 国产精品久99| 亚洲欧美一区二区三区极速播放| 中文字幕不卡一区| 亚洲欧美另类综合偷拍| 亚洲精品日日夜夜| 午夜欧美视频在线观看| 首页亚洲欧美制服丝腿| 免费人成在线不卡| 国产在线不卡视频| 成人精品视频.| 色婷婷亚洲精品| 欧美精品久久天天躁| 精品国产乱码久久久久久久久| 久久久久久9999| 亚洲免费三区一区二区| 三级一区在线视频先锋| 九九国产精品视频| 成人永久免费视频| 日本高清不卡视频| 3atv一区二区三区| 久久久国产精品麻豆| 樱花草国产18久久久久| 乱一区二区av| 一本色道亚洲精品aⅴ| 欧美日本在线视频| 国产日韩欧美麻豆| 亚洲高清不卡在线| 国产成人精品亚洲777人妖| 色婷婷av一区二区三区gif| 欧美福利视频一区| 国产精品久99| 蜜桃视频一区二区三区在线观看| 成人一区在线观看| 欧美日韩一区二区在线观看视频| 久久一日本道色综合| 亚洲综合色婷婷| 成人在线视频首页| 欧美一区二区三区性视频| 中文字幕一区二区三区四区| 免费高清不卡av| 欧美在线观看一区| 国产欧美一区二区在线| 美女高潮久久久| 色视频成人在线观看免| 久久久久综合网|