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

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

?? afwarp.c

?? QT 開發(fā)環(huán)境里面一個很重要的文件
?? C
字號:
/***************************************************************************//*                                                                         *//*  afwarp.c                                                               *//*                                                                         *//*    Auto-fitter warping algorithm (body).                                *//*                                                                         *//*  Copyright 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 "afwarp.h"#ifdef AF_USE_WARPER#if 1  static const AF_WarpScore  af_warper_weights[64] =  {    35, 20, 20, 20, 15, 12, 10,  5,  2,  1,  0,  0,  0,  0,  0,  0,     0,  0,  0,  0,  0,  0, -1, -2, -5, -8,-10,-10,-20,-20,-30,-30,   -30,-30,-20,-20,-10,-10, -8, -5, -2, -1,  0,  0,  0,  0,  0,  0,     0,  0,  0,  0,  0,  0,  0,  1,  2,  5, 10, 12, 15, 20, 20, 20,  };#else  static const AF_WarpScore  af_warper_weights[64] =  {    30, 20, 10,  5,  4,  4,  3,  2,  1,  0,  0,  0,  0,  0,  0,  0,     0,  0,  0,  0,  0,  0,  0, -1, -2, -2, -5, -5,-10,-10,-15,-20,   -20,-15,-15,-10,-10, -5, -5, -2, -2, -1,  0,  0,  0,  0,  0,  0,     0,  0,  0,  0,  0,  0,  0,  0,  1,  2,  3,  4,  4,  5, 10, 20,  };#endif  static void  af_warper_compute_line_best( AF_Warper     warper,                               FT_Fixed      scale,                               FT_Pos        delta,                               FT_Pos        xx1,                               FT_Pos        xx2,                               AF_WarpScore  base_distort,                               AF_Segment    segments,                               FT_UInt       num_segments )  {    FT_Int        idx_min, idx_max, idx0;    FT_UInt       nn;    AF_WarpScore  scores[64];    for ( nn = 0; nn < 64; nn++ )      scores[nn] = 0;    idx0 = xx1 - warper->t1;    /* compute minimum and maximum indices */    {      FT_Pos  xx1min = warper->x1min;      FT_Pos  xx1max = warper->x1max;      FT_Pos  w      = xx2 - xx1;      if ( xx1min + w < warper->x2min )        xx1min = warper->x2min - ( xx2 - xx1 );      xx1max = warper->x1max;      if ( xx1max + w > warper->x2max )        xx1max = warper->x2max - ( xx2 - xx1 );      idx_min = xx1min - warper->t1;      idx_max = xx1max - warper->t1;      if ( idx_min > idx_max )      {        AF_LOG(( "invalid indices:\n"                 "  min=%d max=%d, xx1=%ld xx2=%ld,\n"                 "  x1min=%ld x1max=%ld, x2min=%ld x2max=%ld\n",                 idx_min, idx_max, xx1, xx2,                 warper->x1min, warper->x1max,                 warper->x2min, warper->x2max ));        return;      }    }    for ( nn = 0; nn < num_segments; nn++ )    {      FT_Pos  len = segments[nn].max_coord - segments[nn].min_coord;      FT_Pos  y0  = FT_MulFix( segments[nn].pos, scale ) + delta;      FT_Pos  y   = y0 + ( idx_min - idx0 );      FT_Int  idx;      for ( idx = idx_min; idx <= idx_max; idx++, y++ )        scores[idx] += af_warper_weights[y & 63] * len;    }    /* find best score */    {      FT_Int  idx;      for ( idx = idx_min; idx <= idx_max; idx++ )      {        AF_WarpScore  score = scores[idx];        AF_WarpScore  distort = base_distort + ( idx - idx0 );        if ( score > warper->best_score           ||             ( score == warper->best_score    &&               distort < warper->best_distort )   )        {          warper->best_score   = score;          warper->best_distort = distort;          warper->best_scale   = scale;          warper->best_delta   = delta + ( idx - idx0 );        }      }    }  }  FT_LOCAL_DEF( void )  af_warper_compute( AF_Warper      warper,                     AF_GlyphHints  hints,                     AF_Dimension   dim,                     FT_Fixed      *a_scale,                     FT_Pos        *a_delta )  {    AF_AxisHints  axis;    AF_Point      points;    FT_Fixed      org_scale;    FT_Pos        org_delta;    FT_UInt       nn, num_points, num_segments;    FT_Int        X1, X2;    FT_Int        w;    AF_WarpScore  base_distort;    AF_Segment    segments;    /* get original scaling transformation */    if ( dim == AF_DIMENSION_VERT )    {      org_scale = hints->y_scale;      org_delta = hints->y_delta;    }    else    {      org_scale = hints->x_scale;      org_delta = hints->x_delta;    }    warper->best_scale   = org_scale;    warper->best_delta   = org_delta;    warper->best_score   = 0;    warper->best_distort = 0;    axis         = &hints->axis[dim];    segments     = axis->segments;    num_segments = axis->num_segments;    points       = hints->points;    num_points   = hints->num_points;    *a_scale = org_scale;    *a_delta = org_delta;    /* get X1 and X2, minimum and maximum in original coordinates */    if ( axis->num_segments < 1 )      return;#if 1    X1 = X2 = points[0].fx;    for ( nn = 1; nn < num_points; nn++ )    {      FT_Int  X = points[nn].fx;      if ( X < X1 )        X1 = X;      if ( X > X2 )        X2 = X;    }#else    X1 = X2 = segments[0].pos;    for ( nn = 1; nn < num_segments; nn++ )    {      FT_Int  X = segments[nn].pos;      if ( X < X1 )        X1 = X;      if ( X > X2 )        X2 = X;    }#endif    if ( X1 >= X2 )      return;    warper->x1 = FT_MulFix( X1, org_scale ) + org_delta;    warper->x2 = FT_MulFix( X2, org_scale ) + org_delta;    warper->t1 = AF_WARPER_FLOOR( warper->x1 );    warper->t2 = AF_WARPER_CEIL( warper->x2 );    warper->x1min = warper->x1 & ~31;    warper->x1max = warper->x1min + 32;    warper->x2min = warper->x2 & ~31;    warper->x2max = warper->x2min + 32;    if ( warper->x1max > warper->x2 )      warper->x1max = warper->x2;    if ( warper->x2min < warper->x1 )      warper->x2min = warper->x1;    warper->w0 = warper->x2 - warper->x1;    if ( warper->w0 <= 64 )    {      warper->x1max = warper->x1;      warper->x2min = warper->x2;    }    warper->wmin = warper->x2min - warper->x1max;    warper->wmax = warper->x2max - warper->x1min;    if ( warper->wmin < warper->w0 - 32 )      warper->wmin = warper->w0 - 32;    if ( warper->wmax > warper->w0 + 32 )      warper->wmax = warper->w0 + 32;    if ( warper->wmin < warper->w0 * 3 / 4 )      warper->wmin = warper->w0 * 3 / 4;    if ( warper->wmax > warper->w0 * 5 / 4 )      warper->wmax = warper->w0 * 5 / 4;    /* warper->wmin = warper->wmax = warper->w0; */    for ( w = warper->wmin; w <= warper->wmax; w++ )    {      FT_Fixed  new_scale;      FT_Pos    new_delta;      FT_Pos    xx1, xx2;      xx1 = warper->x1;      xx2 = warper->x2;      if ( w >= warper->w0 )      {        xx1 -= w - warper->w0;        if ( xx1 < warper->x1min )        {          xx2 += warper->x1min - xx1;          xx1  = warper->x1min;        }      }      else      {        xx1 -= w - warper->w0;        if ( xx1 > warper->x1max )        {          xx2 -= xx1 - warper->x1max;          xx1  = warper->x1max;        }      }      if ( xx1 < warper->x1 )        base_distort = warper->x1 - xx1;      else        base_distort = xx1 - warper->x1;      if ( xx2 < warper->x2 )        base_distort += warper->x2 - xx2;      else        base_distort += xx2 - warper->x2;      base_distort *= 10;      new_scale = org_scale + FT_DivFix( w - warper->w0, X2 - X1 );      new_delta = xx1 - FT_MulFix( X1, new_scale );      af_warper_compute_line_best( warper, new_scale, new_delta, xx1, xx2,                                   base_distort,                                   segments, num_segments );    }    *a_scale = warper->best_scale;    *a_delta = warper->best_delta;  }#else /* !AF_USE_WARPER */char  af_warper_dummy = 0;  /* make compiler happy */#endif /* !AF_USE_WARPER *//* END */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品一区二区在线| 天堂成人免费av电影一区| 亚洲激情男女视频| 久久99精品久久久久| 欧美亚洲一区三区| 国产精品美女久久久久aⅴ| 日韩精品视频网站| 欧美性三三影院| 中文字幕永久在线不卡| 极品少妇xxxx精品少妇| 欧美色区777第一页| 欧美韩日一区二区三区四区| 亚洲在线中文字幕| 91视频com| 国产午夜亚洲精品午夜鲁丝片| 亚洲一区二区三区视频在线| 成人激情免费视频| 久久精品视频一区二区三区| 韩国精品免费视频| 日韩女优毛片在线| 欧美96一区二区免费视频| 色94色欧美sute亚洲线路二| 国产精品午夜电影| 国产激情一区二区三区四区| 精品国精品国产| 麻豆国产精品视频| 精品日韩一区二区三区 | 欧美日韩国产首页| 一区二区三区四区av| 91麻豆swag| 亚洲视频一二三| av一区二区三区在线| 国产精品久久毛片a| 成人97人人超碰人人99| 国产精品狼人久久影院观看方式| 国产九色精品成人porny | 国产三级精品视频| 国产精品影视天天线| 久久色视频免费观看| 国产精品正在播放| 中国色在线观看另类| www.欧美.com| 亚洲午夜在线观看视频在线| 欧美日本一道本| 久久国产剧场电影| 国产欧美综合在线观看第十页| 国产一区二区在线电影| 国产夜色精品一区二区av| 波多野结衣在线aⅴ中文字幕不卡| 国产精品电影一区二区| 欧美在线播放高清精品| 日韩精品免费视频人成| 欧美成人一区二区三区在线观看| 久久精品国产77777蜜臀| 欧美国产日韩a欧美在线观看| 成人动漫一区二区三区| 亚洲高清免费观看 | 欧美午夜宅男影院| 久久精品99国产精品日本| 久久免费的精品国产v∧| 成人激情黄色小说| 日韩av午夜在线观看| 久久久久免费观看| 色94色欧美sute亚洲线路一ni| 人人狠狠综合久久亚洲| 中文字幕av不卡| 欧美色图第一页| 国产精品亚洲一区二区三区妖精| 亚洲色图欧洲色图| 偷拍与自拍一区| 亚洲18色成人| 国产精品成人免费在线| 欧美日韩一区二区三区视频 | 日韩欧美一区二区在线视频| 国产精品影视天天线| 一区二区免费在线| 亚洲精品一区二区三区影院| 91老司机福利 在线| 久久99热这里只有精品| 亚洲男同1069视频| 久久久精品免费免费| 在线成人av影院| 91一区二区在线观看| 久久99精品久久久久久国产越南| 一区二区三区成人在线视频| 精品粉嫩aⅴ一区二区三区四区| 欧美在线|欧美| 成人免费毛片aaaaa**| 精品伊人久久久久7777人| 午夜婷婷国产麻豆精品| 亚洲男同性视频| 国产精品久久三区| 国产亚洲女人久久久久毛片| 91精品国产色综合久久| 欧美日韩免费高清一区色橹橹| 99精品视频一区| 丁香婷婷综合激情五月色| 久久精品国产77777蜜臀| 三级影片在线观看欧美日韩一区二区 | 91视频免费播放| 99视频在线精品| 岛国精品在线播放| 国产美女精品一区二区三区| 婷婷激情综合网| 亚洲高清视频在线| 亚洲一区精品在线| 亚洲精选免费视频| 综合av第一页| 一区二区中文字幕在线| 欧美国产日韩一二三区| 欧美国产成人在线| 国产精品护士白丝一区av| 中文字幕精品一区二区精品绿巨人| 久久亚洲精精品中文字幕早川悠里 | 欧美性生活影院| 欧美日韩久久久| 8x8x8国产精品| 91精品国产品国语在线不卡| 欧美一级理论片| 精品国产一区二区在线观看| www亚洲一区| 欧美国产日本韩| 亚洲三级在线播放| 亚洲国产精品自拍| 日av在线不卡| 国产高清久久久| 成人综合在线网站| 一本大道av伊人久久综合| 欧美中文字幕一区二区三区亚洲| 在线观看免费亚洲| 日韩一二在线观看| 久久久综合精品| 亚洲天堂免费看| 日韩在线一区二区| 激情综合色综合久久| 成人免费毛片嘿嘿连载视频| 91视频免费观看| 91精品国产欧美日韩| 国产色婷婷亚洲99精品小说| 国产精品久久久久久久久果冻传媒| 亚洲欧美日韩国产成人精品影院| 亚洲综合视频在线观看| 久久精品国产亚洲aⅴ| av电影一区二区| 欧美日韩免费视频| 精品少妇一区二区三区日产乱码 | 亚洲视频一区在线| 日韩1区2区3区| 国产激情精品久久久第一区二区 | 成人高清免费观看| 欧美午夜片在线看| 久久影院视频免费| 亚洲精品一二三四区| 丝袜a∨在线一区二区三区不卡| 国产麻豆成人传媒免费观看| 在线亚洲人成电影网站色www| 日韩一区二区高清| 亚洲女同一区二区| 麻豆精品视频在线观看视频| 成人激情午夜影院| 日韩小视频在线观看专区| 亚洲天堂成人网| 国产在线一区二区| 欧美福利视频导航| 国产精品久久久久久久第一福利| 日韩国产一区二| 一本大道av伊人久久综合| 久久综合久久综合久久| 亚洲国产日韩一级| av在线免费不卡| 久久久美女毛片| 日本网站在线观看一区二区三区 | 成人精品视频一区二区三区| 777奇米四色成人影色区| 亚洲欧美影音先锋| 国产麻豆91精品| 日韩免费一区二区| 日韩精品亚洲一区二区三区免费| 色综合久久久久综合体| 国产调教视频一区| 经典三级视频一区| 日韩一区二区影院| 午夜不卡av免费| 欧洲精品一区二区三区在线观看| 欧美国产禁国产网站cc| 国产一区二区导航在线播放| 日韩午夜在线观看| 日本午夜一本久久久综合| 欧美日韩在线免费视频| 亚洲色图欧美激情| 91免费看视频| 国产精品久久福利| www.视频一区| 国产精品网站在线观看| 国产精品亚洲专一区二区三区 | 91精品国产欧美一区二区18| 午夜天堂影视香蕉久久| 精品视频在线免费看| 亚洲bdsm女犯bdsm网站| 欧美日韩久久一区|