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

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

?? ftgrays.c

?? QT 開發環境里面一個很重要的文件
?? C
?? 第 1 頁 / 共 4 頁
字號:
    p     = ( ONE_PIXEL - fx1 ) * ( y2 - y1 );    first = ONE_PIXEL;    incr  = 1;    if ( dx < 0 )    {      p     = fx1 * ( y2 - y1 );      first = 0;      incr  = -1;      dx    = -dx;    }    delta = (TCoord)( p / dx );    mod   = (TCoord)( p % dx );    if ( mod < 0 )    {      delta--;      mod += (TCoord)dx;    }    ras.area  += (TArea)( fx1 + first ) * delta;    ras.cover += delta;    ex1 += incr;    gray_set_cell( RAS_VAR_ ex1, ey );    y1  += delta;    if ( ex1 != ex2 )    {      p    = ONE_PIXEL * ( y2 - y1 + delta );      lift = (TCoord)( p / dx );      rem  = (TCoord)( p % dx );      if ( rem < 0 )      {        lift--;        rem += (TCoord)dx;      }      mod -= (int)dx;      while ( ex1 != ex2 )      {        delta = lift;        mod  += rem;        if ( mod >= 0 )        {          mod -= (TCoord)dx;          delta++;        }        ras.area  += (TArea)ONE_PIXEL * delta;        ras.cover += delta;        y1        += delta;        ex1       += incr;        gray_set_cell( RAS_VAR_ ex1, ey );      }    }    delta      = y2 - y1;    ras.area  += (TArea)( fx2 + ONE_PIXEL - first ) * delta;    ras.cover += delta;  }  /*************************************************************************/  /*                                                                       */  /* Render a given line as a series of scanlines.                         */  /*                                                                       */  static void  gray_render_line( RAS_ARG_ TPos  to_x,                             TPos  to_y )  {    TCoord  ey1, ey2, fy1, fy2;    TPos    dx, dy, x, x2;    long    p, first;    int     delta, rem, mod, lift, incr;    ey1 = TRUNC( ras.last_ey );    ey2 = TRUNC( to_y ); /* if (ey2 >= ras.max_ey) ey2 = ras.max_ey-1; */    fy1 = (TCoord)( ras.y - ras.last_ey );    fy2 = (TCoord)( to_y - SUBPIXELS( ey2 ) );    dx = to_x - ras.x;    dy = to_y - ras.y;    /* XXX: we should do something about the trivial case where dx == 0, */    /*      as it happens very often!                                    */    /* perform vertical clipping */    {      TCoord  min, max;      min = ey1;      max = ey2;      if ( ey1 > ey2 )      {        min = ey2;        max = ey1;      }      if ( min >= ras.max_ey || max < ras.min_ey )        goto End;    }    /* everything is on a single scanline */    if ( ey1 == ey2 )    {      gray_render_scanline( RAS_VAR_ ey1, ras.x, fy1, to_x, fy2 );      goto End;    }    /* vertical line - avoid calling gray_render_scanline */    incr = 1;    if ( dx == 0 )    {      TCoord  ex     = TRUNC( ras.x );      TCoord  two_fx = (TCoord)( ( ras.x - SUBPIXELS( ex ) ) << 1 );      TPos    area;      first = ONE_PIXEL;      if ( dy < 0 )      {        first = 0;        incr  = -1;      }      delta      = (int)( first - fy1 );      ras.area  += (TArea)two_fx * delta;      ras.cover += delta;      ey1       += incr;      gray_set_cell( raster, ex, ey1 );      delta = (int)( first + first - ONE_PIXEL );      area  = (TArea)two_fx * delta;      while ( ey1 != ey2 )      {        ras.area  += area;        ras.cover += delta;        ey1       += incr;        gray_set_cell( raster, ex, ey1 );      }      delta      = (int)( fy2 - ONE_PIXEL + first );      ras.area  += (TArea)two_fx * delta;      ras.cover += delta;      goto End;    }    /* ok, we have to render several scanlines */    p     = ( ONE_PIXEL - fy1 ) * dx;    first = ONE_PIXEL;    incr  = 1;    if ( dy < 0 )    {      p     = fy1 * dx;      first = 0;      incr  = -1;      dy    = -dy;    }    delta = (int)( p / dy );    mod   = (int)( p % dy );    if ( mod < 0 )    {      delta--;      mod += (TCoord)dy;    }    x = ras.x + delta;    gray_render_scanline( RAS_VAR_ ey1, ras.x, fy1, x, (TCoord)first );    ey1 += incr;    gray_set_cell( RAS_VAR_ TRUNC( x ), ey1 );    if ( ey1 != ey2 )    {      p     = ONE_PIXEL * dx;      lift  = (int)( p / dy );      rem   = (int)( p % dy );      if ( rem < 0 )      {        lift--;        rem += (int)dy;      }      mod -= (int)dy;      while ( ey1 != ey2 )      {        delta = lift;        mod  += rem;        if ( mod >= 0 )        {          mod -= (int)dy;          delta++;        }        x2 = x + delta;        gray_render_scanline( RAS_VAR_ ey1, x,                                       (TCoord)( ONE_PIXEL - first ), x2,                                       (TCoord)first );        x = x2;        ey1 += incr;        gray_set_cell( RAS_VAR_ TRUNC( x ), ey1 );      }    }    gray_render_scanline( RAS_VAR_ ey1, x,                                   (TCoord)( ONE_PIXEL - first ), to_x,                                   fy2 );  End:    ras.x       = to_x;    ras.y       = to_y;    ras.last_ey = SUBPIXELS( ey2 );  }  static void  gray_split_conic( FT_Vector*  base )  {    TPos  a, b;    base[4].x = base[2].x;    b = base[1].x;    a = base[3].x = ( base[2].x + b ) / 2;    b = base[1].x = ( base[0].x + b ) / 2;    base[2].x = ( a + b ) / 2;    base[4].y = base[2].y;    b = base[1].y;    a = base[3].y = ( base[2].y + b ) / 2;    b = base[1].y = ( base[0].y + b ) / 2;    base[2].y = ( a + b ) / 2;  }  static void  gray_render_conic( RAS_ARG_ const FT_Vector*  control,                              const FT_Vector*  to )  {    TPos        dx, dy;    int         top, level;    int*        levels;    FT_Vector*  arc;    dx = DOWNSCALE( ras.x ) + to->x - ( control->x << 1 );    if ( dx < 0 )      dx = -dx;    dy = DOWNSCALE( ras.y ) + to->y - ( control->y << 1 );    if ( dy < 0 )      dy = -dy;    if ( dx < dy )      dx = dy;    level = 1;    dx = dx / ras.conic_level;    while ( dx > 0 )    {      dx >>= 2;      level++;    }    /* a shortcut to speed things up */    if ( level <= 1 )    {      /* we compute the mid-point directly in order to avoid */      /* calling gray_split_conic()                          */      TPos   to_x, to_y, mid_x, mid_y;      to_x  = UPSCALE( to->x );      to_y  = UPSCALE( to->y );      mid_x = ( ras.x + to_x + 2 * UPSCALE( control->x ) ) / 4;      mid_y = ( ras.y + to_y + 2 * UPSCALE( control->y ) ) / 4;      gray_render_line( RAS_VAR_ mid_x, mid_y );      gray_render_line( RAS_VAR_ to_x, to_y );      return;    }    arc       = ras.bez_stack;    levels    = ras.lev_stack;    top       = 0;    levels[0] = level;    arc[0].x = UPSCALE( to->x );    arc[0].y = UPSCALE( to->y );    arc[1].x = UPSCALE( control->x );    arc[1].y = UPSCALE( control->y );    arc[2].x = ras.x;    arc[2].y = ras.y;    while ( top >= 0 )    {      level = levels[top];      if ( level > 1 )      {        /* check that the arc crosses the current band */        TPos  min, max, y;        min = max = arc[0].y;        y = arc[1].y;        if ( y < min ) min = y;        if ( y > max ) max = y;        y = arc[2].y;        if ( y < min ) min = y;        if ( y > max ) max = y;        if ( TRUNC( min ) >= ras.max_ey || TRUNC( max ) < ras.min_ey )          goto Draw;        gray_split_conic( arc );        arc += 2;        top++;        levels[top] = levels[top - 1] = level - 1;        continue;      }    Draw:      {        TPos  to_x, to_y, mid_x, mid_y;        to_x  = arc[0].x;        to_y  = arc[0].y;        mid_x = ( ras.x + to_x + 2 * arc[1].x ) / 4;        mid_y = ( ras.y + to_y + 2 * arc[1].y ) / 4;        gray_render_line( RAS_VAR_ mid_x, mid_y );        gray_render_line( RAS_VAR_ to_x, to_y );        top--;        arc -= 2;      }    }    return;  }  static void  gray_split_cubic( FT_Vector*  base )  {    TPos  a, b, c, d;    base[6].x = base[3].x;    c = base[1].x;    d = base[2].x;    base[1].x = a = ( base[0].x + c ) / 2;    base[5].x = b = ( base[3].x + d ) / 2;    c = ( c + d ) / 2;    base[2].x = a = ( a + c ) / 2;    base[4].x = b = ( b + c ) / 2;    base[3].x = ( a + b ) / 2;    base[6].y = base[3].y;    c = base[1].y;    d = base[2].y;    base[1].y = a = ( base[0].y + c ) / 2;    base[5].y = b = ( base[3].y + d ) / 2;    c = ( c + d ) / 2;    base[2].y = a = ( a + c ) / 2;    base[4].y = b = ( b + c ) / 2;    base[3].y = ( a + b ) / 2;  }  static void  gray_render_cubic( RAS_ARG_ const FT_Vector*  control1,                              const FT_Vector*  control2,                              const FT_Vector*  to )  {    TPos        dx, dy, da, db;    int         top, level;    int*        levels;    FT_Vector*  arc;    dx = DOWNSCALE( ras.x ) + to->x - ( control1->x << 1 );    if ( dx < 0 )      dx = -dx;    dy = DOWNSCALE( ras.y ) + to->y - ( control1->y << 1 );    if ( dy < 0 )      dy = -dy;    if ( dx < dy )      dx = dy;    da = dx;    dx = DOWNSCALE( ras.x ) + to->x - 3 * ( control1->x + control2->x );    if ( dx < 0 )      dx = -dx;    dy = DOWNSCALE( ras.y ) + to->y - 3 * ( control1->x + control2->y );    if ( dy < 0 )      dy = -dy;    if ( dx < dy )      dx = dy;    db = dx;    level = 1;    da    = da / ras.cubic_level;    db    = db / ras.conic_level;    while ( da > 0 || db > 0 )    {      da >>= 2;      db >>= 3;      level++;    }    if ( level <= 1 )    {      TPos   to_x, to_y, mid_x, mid_y;      to_x  = UPSCALE( to->x );      to_y  = UPSCALE( to->y );      mid_x = ( ras.x + to_x +                3 * UPSCALE( control1->x + control2->x ) ) / 8;      mid_y = ( ras.y + to_y +                3 * UPSCALE( control1->y + control2->y ) ) / 8;      gray_render_line( RAS_VAR_ mid_x, mid_y );      gray_render_line( RAS_VAR_ to_x, to_y );      return;    }    arc      = ras.bez_stack;    arc[0].x = UPSCALE( to->x );    arc[0].y = UPSCALE( to->y );    arc[1].x = UPSCALE( control2->x );    arc[1].y = UPSCALE( control2->y );    arc[2].x = UPSCALE( control1->x );    arc[2].y = UPSCALE( control1->y );    arc[3].x = ras.x;    arc[3].y = ras.y;    levels    = ras.lev_stack;    top       = 0;    levels[0] = level;    while ( top >= 0 )    {      level = levels[top];      if ( level > 1 )      {        /* check that the arc crosses the current band */        TPos  min, max, y;        min = max = arc[0].y;        y = arc[1].y;        if ( y < min ) min = y;        if ( y > max ) max = y;        y = arc[2].y;        if ( y < min ) min = y;        if ( y > max ) max = y;        y = arc[3].y;        if ( y < min ) min = y;        if ( y > max ) max = y;        if ( TRUNC( min ) >= ras.max_ey || TRUNC( max ) < 0 )          goto Draw;        gray_split_cubic( arc );        arc += 3;        top ++;        levels[top] = levels[top - 1] = level - 1;        continue;      }    Draw:      {        TPos  to_x, to_y, mid_x, mid_y;        to_x  = arc[0].x;        to_y  = arc[0].y;        mid_x = ( ras.x + to_x + 3 * ( arc[1].x + arc[2].x ) ) / 8;        mid_y = ( ras.y + to_y + 3 * ( arc[1].y + arc[2].y ) ) / 8;        gray_render_line( RAS_VAR_ mid_x, mid_y );        gray_render_line( RAS_VAR_ to_x, to_y );        top --;        arc -= 3;      }    }    return;  }  /* a macro comparing two cell pointers.  Returns true if a <= b. */#if 1#define PACK( a )          ( ( (long)(a)->y << 16 ) + (a)->x )#define LESS_THAN( a, b )  ( PACK( a ) < PACK( b ) )#else /* 1 */#define LESS_THAN( a, b )  ( (a)->y < (b)->y || \                             ( (a)->y == (b)->y && (a)->x < (b)->x ) )#endif /* 1 */#define SWAP_CELLS( a, b, temp )  do             \                                  {              \                                    temp = *(a); \                                    *(a) = *(b); \                                    *(b) = temp; \                                  } while ( 0 )#define DEBUG_SORT#define QUICK_SORT#ifdef SHELL_SORT  /* a simple shell sort algorithm that works directly on our */  /* cells table                                              */  static void  gray_shell_sort ( PCell  cells,                    int    count )  {    PCell  i, j, limit = cells + count;    TCell  temp;    int    gap;    /* compute initial gap */    for ( gap = 0; ++gap < count; gap *= 3 )      ;    while ( gap /= 3 )    {      for ( i = cells + gap; i < limit; i++ )

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品一区二区在线免费观看| 日韩一区二区三区免费观看| 欧美日韩成人在线一区| 欧美一区二区三区思思人| 精品欧美一区二区久久| 国产精品欧美综合在线| 亚洲高清免费在线| 激情国产一区二区| 99久久精品国产观看| 欧美精品aⅴ在线视频| 久久一日本道色综合| 亚洲品质自拍视频| 麻豆精品国产91久久久久久| 成人激情免费电影网址| 欧美一区二区在线观看| 亚洲欧美在线观看| 日本va欧美va瓶| www.亚洲色图| 日韩欧美国产麻豆| 亚洲欧美综合色| 久久精品国产精品亚洲红杏| 97久久精品人人澡人人爽| 制服.丝袜.亚洲.中文.综合| 欧美韩国日本一区| 日韩 欧美一区二区三区| eeuss鲁片一区二区三区在线观看| 欧美日韩国产乱码电影| 国产精品视频线看| 日韩精品电影在线观看| youjizz国产精品| 精品国产a毛片| 亚洲二区在线观看| 成人的网站免费观看| 日韩欧美高清一区| 一区二区三区免费看视频| 国产伦精品一区二区三区视频青涩 | 国产九九视频一区二区三区| 在线视频欧美精品| 国产日韩精品视频一区| 日本中文字幕一区| 一本久久a久久免费精品不卡| 精品国一区二区三区| 五月综合激情日本mⅴ| 91在线观看美女| 国产亚洲va综合人人澡精品 | 欧美一个色资源| 亚洲精品成人少妇| 欧美一二区视频| 亚洲综合成人网| 成人免费观看视频| 亚洲精品一区二区三区精华液 | 欧美日韩精品福利| 亚洲最大的成人av| av在线不卡电影| 国产欧美视频一区二区| 国产在线一区观看| 日韩欧美亚洲国产精品字幕久久久| 亚洲黄色片在线观看| 成人伦理片在线| 国产欧美日韩精品a在线观看| 久久国产尿小便嘘嘘尿| 欧美一区二区三区公司| 亚洲成a人在线观看| 欧美自拍丝袜亚洲| 亚洲女子a中天字幕| www.亚洲色图.com| 国产欧美日韩三级| 国产精品18久久久久久vr| xvideos.蜜桃一区二区| 麻豆国产精品一区二区三区| 日韩三级.com| 蜜臀av一区二区在线免费观看| 91.xcao| 日韩成人午夜电影| 91精品在线观看入口| 免费在线看一区| 日韩免费观看2025年上映的电影| 美国三级日本三级久久99| 日韩一区二区三区在线观看| 日韩经典中文字幕一区| 欧美一区二区在线视频| 久久99热这里只有精品| 精品国一区二区三区| 国产精品一区二区男女羞羞无遮挡| 久久午夜色播影院免费高清 | 亚洲视频在线一区| 色94色欧美sute亚洲13| 成人黄色片在线观看| 一区精品在线播放| 欧亚洲嫩模精品一区三区| 亚洲国产视频一区二区| 欧美三级蜜桃2在线观看| 日日噜噜夜夜狠狠视频欧美人| 欧美一三区三区四区免费在线看 | 久久一日本道色综合| 国产成人自拍网| 亚洲丝袜精品丝袜在线| 欧美日韩亚洲综合在线| 男女男精品视频| 国产欧美一区二区精品婷婷| 色婷婷综合久久久久中文一区二区| 亚洲成人久久影院| 欧美精品一区二区三区蜜臀| 成人99免费视频| 亚洲chinese男男1069| 日韩欧美国产1| 不卡的av中国片| 午夜视频在线观看一区二区三区| 日韩精品一区二区三区中文精品| 成人中文字幕在线| 亚洲一级在线观看| 精品欧美乱码久久久久久| 白白色 亚洲乱淫| 日韩经典一区二区| 日本一区二区不卡视频| 欧美四级电影网| 国产毛片精品视频| 亚洲国产日韩精品| 欧美精品一区二区三区四区| 97久久精品人人澡人人爽| 美女视频一区二区| 亚洲视频 欧洲视频| 欧美一区二区大片| 99re免费视频精品全部| 蜜臀91精品一区二区三区| 中文字幕巨乱亚洲| 欧美伦理影视网| 成人中文字幕在线| 男人操女人的视频在线观看欧美| 国产精品久久免费看| 91精品国产一区二区| 精品剧情v国产在线观看在线| 97精品久久久午夜一区二区三区| 三级成人在线视频| 亚洲图片另类小说| 26uuu欧美| 精品视频在线看| 成人av综合在线| 麻豆91免费看| 亚洲综合在线免费观看| 国产欧美一区二区三区鸳鸯浴| 欧美疯狂做受xxxx富婆| 91免费在线播放| 国产成人精品亚洲日本在线桃色 | 精品欧美黑人一区二区三区| 欧美综合天天夜夜久久| 成人性生交大片免费看中文| 蜜臀a∨国产成人精品| 亚洲大尺度视频在线观看| 国产精品区一区二区三区 | 国产久卡久卡久卡久卡视频精品| 亚洲超丰满肉感bbw| 日韩毛片在线免费观看| 国产性做久久久久久| 日韩欧美自拍偷拍| 欧美色精品在线视频| 91免费在线播放| 成人高清免费观看| 国产激情一区二区三区桃花岛亚洲| 欧美96一区二区免费视频| 亚洲成人久久影院| 亚洲精品久久久蜜桃| 综合在线观看色| 国产精品伦一区| 国产精品视频观看| 国产日韩一级二级三级| 亚洲精品一区二区精华| 日韩精品一区二区三区三区免费| 色婷婷国产精品久久包臀| 成人国产视频在线观看| 成人性生交大片免费看中文 | 亚洲欧洲国产日韩| 欧美激情综合五月色丁香小说| 久久九九久精品国产免费直播| 精品国产伦一区二区三区观看体验| 91精品国产色综合久久ai换脸| 欧美精品日日鲁夜夜添| 国产精品久久久久桃色tv| 国产精品你懂的在线欣赏| 国产欧美日韩视频在线观看| 国产亚洲婷婷免费| 久久精品视频网| 欧美激情中文字幕| 国产精品免费丝袜| 国产精品福利在线播放| 国产精品初高中害羞小美女文| 国产精品久久毛片| 亚洲欧美区自拍先锋| 日韩理论片中文av| 亚洲青青青在线视频| 亚洲综合区在线| 日韩精品免费专区| 美女久久久精品| 国产精品一区专区| 成人免费高清在线| 色婷婷av久久久久久久| 欧美在线三级电影| 欧美一区二区精美| 久久久精品日韩欧美| 一区二区中文视频|