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

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

?? afglobal.c

?? QT 開發環境里面一個很重要的文件
?? C
字號:
/***************************************************************************//*                                                                         *//*  afglobal.c                                                             *//*                                                                         *//*    Auto-fitter routines to compute global hinting values (body).        *//*                                                                         *//*  Copyright 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 "afglobal.h"#include "afdummy.h"#include "aflatin.h"#include "afcjk.h"#include "aferrors.h"  /* populate this list when you add new scripts */  static AF_ScriptClass const  af_script_classes[] =  {    &af_dummy_script_class,    &af_latin_script_class,    &af_cjk_script_class,    NULL  /* do not remove */  };  /* index of default script in `af_script_classes' */#define AF_SCRIPT_LIST_DEFAULT  1  /* indicates an uncovered glyph                   */#define AF_SCRIPT_LIST_NONE   255  /*   *  Note that glyph_scripts[] is used to map each glyph into   *  an index into the `af_script_classes' array.   *   */  typedef struct  AF_FaceGlobalsRec_  {    FT_Face           face;    FT_UInt           glyph_count;    /* same as face->num_glyphs */    FT_Byte*          glyph_scripts;    AF_ScriptMetrics  metrics[AF_SCRIPT_MAX];  } AF_FaceGlobalsRec;  /* Compute the script index of each glyph within a given face. */  static FT_Error  af_face_globals_compute_script_coverage( AF_FaceGlobals  globals )  {    FT_Error    error       = AF_Err_Ok;    FT_Face     face        = globals->face;    FT_CharMap  old_charmap = face->charmap;    FT_Byte*    gscripts    = globals->glyph_scripts;    FT_UInt     ss;    /* the value 255 means `uncovered glyph' */    FT_MEM_SET( globals->glyph_scripts,                AF_SCRIPT_LIST_NONE,                globals->glyph_count );    error = FT_Select_Charmap( face, FT_ENCODING_UNICODE );    if ( error )    {     /*      *  Ignore this error; we simply use Latin as the standard      *  script.  XXX: Shouldn't we rather disable hinting?      */      error = AF_Err_Ok;      goto Exit;    }    /* scan each script in a Unicode charmap */    for ( ss = 0; af_script_classes[ss]; ss++ )    {      AF_ScriptClass      clazz = af_script_classes[ss];      AF_Script_UniRange  range;      if ( clazz->script_uni_ranges == NULL )        continue;      /*       *  Scan all unicode points in the range and set the corresponding       *  glyph script index.       */      for ( range = clazz->script_uni_ranges; range->first != 0; range++ )      {        FT_ULong  charcode = range->first;        FT_UInt   gindex;        gindex = FT_Get_Char_Index( face, charcode );        if ( gindex != 0                             &&             gindex < globals->glyph_count           &&             gscripts[gindex] == AF_SCRIPT_LIST_NONE )        {          gscripts[gindex] = (FT_Byte)ss;        }        for (;;)        {          charcode = FT_Get_Next_Char( face, charcode, &gindex );          if ( gindex == 0 || charcode > range->last )            break;          if ( gindex < globals->glyph_count           &&               gscripts[gindex] == AF_SCRIPT_LIST_NONE )          {            gscripts[gindex] = (FT_Byte)ss;          }        }      }    }  Exit:    /*     *  By default, all uncovered glyphs are set to the latin script.     *  XXX: Shouldnt' we disable hinting or do something similar?     */    {      FT_UInt  nn;      for ( nn = 0; nn < globals->glyph_count; nn++ )      {        if ( gscripts[nn] == AF_SCRIPT_LIST_NONE )          gscripts[nn] = AF_SCRIPT_LIST_DEFAULT;      }    }    FT_Set_Charmap( face, old_charmap );    return error;  }  FT_LOCAL_DEF( FT_Error )  af_face_globals_new( FT_Face          face,                       AF_FaceGlobals  *aglobals )  {    FT_Error        error;    FT_Memory       memory;    AF_FaceGlobals  globals;    memory = face->memory;    if ( !FT_ALLOC( globals, sizeof ( *globals ) +                             face->num_glyphs * sizeof ( FT_Byte ) ) )    {      globals->face          = face;      globals->glyph_count   = face->num_glyphs;      globals->glyph_scripts = (FT_Byte*)( globals + 1 );      error = af_face_globals_compute_script_coverage( globals );      if ( error )      {        af_face_globals_free( globals );        globals = NULL;      }    }    *aglobals = globals;    return error;  }  FT_LOCAL_DEF( void )  af_face_globals_free( AF_FaceGlobals  globals )  {    if ( globals )    {      FT_Memory  memory = globals->face->memory;      FT_UInt    nn;      for ( nn = 0; nn < AF_SCRIPT_MAX; nn++ )      {        if ( globals->metrics[nn] )        {          AF_ScriptClass  clazz = af_script_classes[nn];          FT_ASSERT( globals->metrics[nn]->clazz == clazz );          if ( clazz->script_metrics_done )            clazz->script_metrics_done( globals->metrics[nn] );          FT_FREE( globals->metrics[nn] );        }      }      globals->glyph_count   = 0;      globals->glyph_scripts = NULL;  /* no need to free this one! */      globals->face          = NULL;      FT_FREE( globals );    }  }  FT_LOCAL_DEF( FT_Error )  af_face_globals_get_metrics( AF_FaceGlobals     globals,                               FT_UInt            gindex,                               AF_ScriptMetrics  *ametrics )  {    AF_ScriptMetrics  metrics = NULL;    FT_UInt           gidx;    AF_ScriptClass    clazz;    FT_Error          error = AF_Err_Ok;    if ( gindex >= globals->glyph_count )    {      error = AF_Err_Invalid_Argument;      goto Exit;    }    gidx    = globals->glyph_scripts[gindex];    clazz   = af_script_classes[gidx];    metrics = globals->metrics[clazz->script];    if ( metrics == NULL )    {      /* create the global metrics object when needed */      FT_Memory  memory = globals->face->memory;      if ( FT_ALLOC( metrics, clazz->script_metrics_size ) )        goto Exit;      metrics->clazz = clazz;      if ( clazz->script_metrics_init )      {        error = clazz->script_metrics_init( metrics, globals->face );        if ( error )        {          if ( clazz->script_metrics_done )            clazz->script_metrics_done( metrics );          FT_FREE( metrics );          goto Exit;        }      }      globals->metrics[clazz->script] = metrics;    }  Exit:    *ametrics = metrics;    return error;  }/* END */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美中文字幕久久| 欧美一区二区三区婷婷月色| 亚洲第一福利一区| 久久精品视频免费| 欧美精品 国产精品| 成人99免费视频| 黄色日韩三级电影| 亚洲成在线观看| 亚洲天堂中文字幕| 欧美精品一区男女天堂| 欧美日韩中文字幕一区| 不卡的av网站| 国产在线观看免费一区| 日韩福利电影在线| 亚洲一本大道在线| 亚洲人成网站在线| 中文字幕的久久| 国产亚洲一区二区三区| 日韩欧美123| 欧美福利一区二区| 91精品久久久久久久99蜜桃| 成人视屏免费看| 国产专区综合网| 免费美女久久99| 秋霞电影一区二区| 亚欧色一区w666天堂| 夜夜嗨av一区二区三区四季av| 国产亚洲美州欧州综合国| 日韩欧美一区二区视频| 欧美疯狂做受xxxx富婆| 欧美日韩精品一区二区天天拍小说 | 免费av网站大全久久| 亚洲综合网站在线观看| 日韩理论片在线| 亚洲视频免费在线观看| 国产精品久久久久久久第一福利 | 曰韩精品一区二区| 亚洲精品水蜜桃| 亚洲精品第一国产综合野| 国产精品欧美极品| 中文字幕乱码久久午夜不卡| 国产欧美精品一区二区色综合| 久久婷婷国产综合国色天香| 国产亲近乱来精品视频| 国产亚洲欧洲一区高清在线观看| 精品国产乱子伦一区| 精品国产91亚洲一区二区三区婷婷| 日韩午夜在线观看视频| 26uuu国产在线精品一区二区| 亚洲精品一线二线三线| 久久久激情视频| 国产欧美日韩不卡| 亚洲精品中文在线观看| 亚洲免费视频成人| 一区二区三区91| 亚洲香肠在线观看| 日本不卡中文字幕| 国产在线精品国自产拍免费| 顶级嫩模精品视频在线看| 99久久精品情趣| 欧美日韩激情一区| 精品国精品国产尤物美女| 国产亲近乱来精品视频| 亚洲免费观看高清完整版在线观看熊| 亚洲欧美日韩电影| 日韩主播视频在线| 久久99热狠狠色一区二区| 国产成人av一区二区三区在线 | 成人av电影免费在线播放| 在线免费视频一区二区| 欧美v日韩v国产v| 国产欧美一区二区精品性色超碰| 亚洲欧洲日产国产综合网| 亚洲高清不卡在线| 国产激情偷乱视频一区二区三区| 91蜜桃免费观看视频| 欧美久久久久久久久中文字幕| 欧美不卡在线视频| 亚洲色图.com| 人妖欧美一区二区| 成人午夜视频免费看| 欧美日韩高清在线| 欧美国产精品一区二区| 一区二区三区精品视频| 国产一区二区三区久久久| 一本大道av伊人久久综合| 日韩三级.com| 尤物在线观看一区| 国内偷窥港台综合视频在线播放| 91久久香蕉国产日韩欧美9色| 欧美videossexotv100| 综合精品久久久| 九九国产精品视频| 欧美在线色视频| 国产精品免费视频观看| 久久99蜜桃精品| 欧美在线视频你懂得| 国产欧美综合在线| 麻豆精品视频在线观看视频| 91浏览器在线视频| 久久久精品国产免费观看同学| 五月综合激情日本mⅴ| 99re66热这里只有精品3直播| 日韩欧美中文字幕精品| 亚洲精品国产品国语在线app| 国产精品系列在线播放| 欧美日韩aaaaaa| 亚洲精选视频在线| 成人网页在线观看| 欧美tk丨vk视频| 视频一区中文字幕国产| 色综合久久久久久久| 中文字幕巨乱亚洲| 国产在线一区观看| 精品毛片乱码1区2区3区| 五月激情综合网| 欧美性xxxxxxxx| 一个色综合网站| 日本精品一级二级| 亚洲美女一区二区三区| 成人久久视频在线观看| 久久精品人人做人人爽人人| 精品一区中文字幕| 欧美成人猛片aaaaaaa| 午夜视频一区二区| 欧美日韩在线不卡| 亚洲电影视频在线| 欧美日韩极品在线观看一区| 亚洲一二三四区不卡| 色噜噜狠狠色综合中国| 亚洲四区在线观看| 91免费看`日韩一区二区| 国产精品亲子伦对白| 不卡高清视频专区| 亚洲丝袜精品丝袜在线| 99久久国产综合精品色伊| 亚洲欧洲精品一区二区精品久久久| 懂色av噜噜一区二区三区av| 国产精品久久久久婷婷| 97久久超碰国产精品| 一区二区免费在线播放| 欧洲色大大久久| 午夜精品福利视频网站| 91精品在线麻豆| 极品销魂美女一区二区三区| 精品免费一区二区三区| 国产乱色国产精品免费视频| 久久久久久9999| av动漫一区二区| 一区二区三区精品视频在线| 欧美久久一二区| 国产在线麻豆精品观看| 国产精品九色蝌蚪自拍| 91视频免费观看| 婷婷开心激情综合| 欧美成人伊人久久综合网| 国产精华液一区二区三区| 亚洲视频你懂的| 欧美丰满一区二区免费视频| 久久精品国产亚洲a| 国产农村妇女精品| 在线观看视频一区二区| 蜜臀99久久精品久久久久久软件| 精品国产乱码久久久久久久| 成人网页在线观看| 亚洲福利一二三区| www成人在线观看| av电影天堂一区二区在线观看| 亚洲国产wwwccc36天堂| 精品处破学生在线二十三| 成人18视频在线播放| 水野朝阳av一区二区三区| 久久综合999| 日本韩国一区二区| 久久精品国产一区二区三| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 精品国产一区二区三区不卡 | 色综合中文综合网| 欧美二区乱c少妇| 国产久卡久卡久卡久卡视频精品| 亚洲欧美在线aaa| 91精品免费在线| 国产传媒欧美日韩成人| 亚洲综合在线五月| 精品国产乱码久久久久久久久| 色香蕉成人二区免费| 久久国产夜色精品鲁鲁99| 亚洲欧美激情视频在线观看一区二区三区 | 欧美日韩电影一区| 春色校园综合激情亚洲| 日韩中文字幕av电影| 国产精品成人一区二区艾草 | 日本女人一区二区三区| 亚洲人精品午夜| 久久亚洲捆绑美女| 欧美午夜精品一区| 不卡的av网站| 国产一区二区伦理| 免费人成在线不卡| 亚洲综合色成人|