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

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

?? hints.c

?? 一個Xpdf應用的例子
?? C
?? 第 1 頁 / 共 3 頁
字號:
/* $XConsortium: hints.c,v 1.4 91/10/10 11:18:13 rws Exp $ *//* Copyright International Business Machines, Corp. 1991 * All Rights Reserved * Copyright Lexmark International, Inc. 1991 * All Rights Reserved * * License to use, copy, modify, and distribute this software and its * documentation for any purpose and without fee is hereby granted, * provided that the above copyright notice appear in all copies and that * both that copyright notice and this permission notice appear in * supporting documentation, and that the name of IBM or Lexmark not be * used in advertising or publicity pertaining to distribution of the * software without specific, written prior permission. * * IBM AND LEXMARK PROVIDE THIS SOFTWARE "AS IS", WITHOUT ANY WARRANTIES OF * ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO ANY * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, * AND NONINFRINGEMENT OF THIRD PARTY RIGHTS.  THE ENTIRE RISK AS TO THE * QUALITY AND PERFORMANCE OF THE SOFTWARE, INCLUDING ANY DUTY TO SUPPORT * OR MAINTAIN, BELONGS TO THE LICENSEE.  SHOULD ANY PORTION OF THE * SOFTWARE PROVE DEFECTIVE, THE LICENSEE (NOT IBM OR LEXMARK) ASSUMES THE * ENTIRE COST OF ALL SERVICING, REPAIR AND CORRECTION.  IN NO EVENT SHALL * IBM OR LEXMARK BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF * THIS SOFTWARE. */ /* HINTS    CWEB         V0006 ********                             *//*:h1.HINTS Module - Processing Rasterization Hints &author. Sten F. Andler; continuity by Jeffrey B. Lotspiech (lotspiech@almaden.ibm.com) and DuaineW. Pryor, Jr.  :h3.Include Files The included files are:*/#include <stdio.h>#include "types.h"#include "objects.h"#include "spaces.h"#include "paths.h"#include "regions.h"#include "hints.h" /*:h3.Functions Provided to the TYPE1IMAGER User None.*/ /*:h3.Functions Provided to Other Modules This module provides the following entry point to other modules:*/  /*SHARED LINE(S) ORIGINATED HERE*/ /*:h3.Macros Provided to Other Modules None.*/ /*:h2.InitHints() - Initialize hint data structure*/ #define MAXLABEL 20static struct {  int inuse;  int computed;  struct fractpoint hint;} oldHint[MAXLABEL]; #define ODD(x) (((int)(x)) & 01)#define FPFLOOR(fp) TOFRACTPEL((fp) >> FRACTBITS)#define FPROUND(fp) FPFLOOR((fp) + FPHALF) void InitHints(){  int i;   for (i = 0; i < MAXLABEL; i++)    {    oldHint[i].inuse    = FALSE;    oldHint[i].computed = FALSE;    }} /*:h3.CloseHints(hintP) - Reverse hints that are still open*/ void CloseHints(hintP)  struct fractpoint *hintP;{  int i;   for (i = 0; i < MAXLABEL; i++)    {    if (oldHint[i].inuse)      {      hintP->x -= oldHint[i].hint.x;      hintP->y -= oldHint[i].hint.y;       oldHint[i].inuse = FALSE;       IfTrace3((HintDebug > 1),"  Hint %d was open, hint=(%d,%d)\n",                i, hintP->x, hintP->y);      }    }} /*:h3.ComputeHint(hP, currX, currY, hintP) - Compute the value of a hint*/ static void ComputeHint(hP, currX, currY, hintP)  struct hintsegment *hP;  fractpel currX, currY;  struct fractpoint *hintP;{  fractpel currRef=0, currWidth=0;  int idealWidth;  fractpel hintValue=0;  char orientation; /*By construction, width is never zero.  Therefore we can use thewidth value to determine if the hint has been rotated by amultiple of 90 degrees.*/   if (hP->width.y == 0)    {    orientation = 'v';  /* vertical */    IfTrace0((HintDebug > 0),"  vertical hint\n");    }  else if (hP->width.x == 0)    {    orientation = 'h';  /* horizontal */    IfTrace0((HintDebug > 0),"  horizontal hint\n");    }  else    {    IfTrace0((HintDebug > 0),"  hint not vertical or horizontal\n");    hintP->x = hintP->y = 0;    return;    }   /* Compute currRef and currWidth with a unit of 1 pel */  if (orientation == 'v')      /* vertical */    {    currRef = hP->ref.x + currX;    currWidth = TYPE1_ABS(hP->width.x);    }  else if (orientation == 'h') /* horizontal */    {    currRef = hP->ref.y + currY;    currWidth = TYPE1_ABS(hP->width.y);    }  else                             /* error */    {    abort("ComputeHint: invalid orientation", 4);    }   IfTrace4((HintDebug > 1),    "  currX=%d, currY=%d, currRef=%d, currWidth=%d\n",    currX, currY,    currRef, currWidth);   if ((hP->hinttype == 'b')      /* Bar or stem */    || (hP->hinttype == 's'))    /* Serif */    {    idealWidth = NEARESTPEL(currWidth);    if (idealWidth == 0) idealWidth = 1;    if (ODD(idealWidth))         /* Is ideal width odd? */      {      /* center "ref" over pel */      hintValue = FPFLOOR(currRef) + FPHALF - currRef;      }    else      {      /* align "ref" on pel boundary */      hintValue = FPROUND(currRef) - currRef;      }    if (HintDebug > 2) {          IfTrace1(TRUE,"  idealWidth=%d, ", idealWidth);      }    }  else if (hP->hinttype == 'c')  /* Curve extrema */    {    /* align "ref" on pel boundary */    hintValue = FPROUND(currRef) - currRef;    }  else                           /* error */    {    abort("ComputeHint: invalid hinttype", 5);    }   IfTrace1((HintDebug > 1),"  hintValue=%d", hintValue);   if (orientation == 'v')      /* vertical */    {    hintP->x = hintValue;    hintP->y = 0;    }  else if (orientation == 'h') /* horizontal */    {    hintP->x = 0;    hintP->y = hintValue;    }  else                             /* error */    {    abort("ComputeHint: invalid orientation", 6);    }} /*:h3.ProcessHint(hP, currX, currY, hintP) - Process a rasterization hint*/ void ProcessHint(hP, currX, currY, hintP)  struct hintsegment *hP;  fractpel currX, currY;  struct fractpoint *hintP;{  struct fractpoint thisHint;   IfTrace4((HintDebug > 1),"  ref=(%d,%d), width=(%d,%d)",      hP->ref.x, hP->ref.y,      hP->width.x, hP->width.y);  IfTrace4((HintDebug > 1),", %c %c %c %c",      hP->orientation, hP->hinttype,      hP->adjusttype, hP->direction);  IfTrace1((HintDebug > 1),", label=%d\n", hP->label);   if ((hP->adjusttype == 'm')      /* Move */    || (hP->adjusttype == 'a'))    /* Adjust */    {    /* Look up hint in oldHint table */    if ((hP->label >= 0) && (hP->label < MAXLABEL))      {      if (oldHint[hP->label].computed)        /* Use old hint value if already computed */        {        thisHint.x = oldHint[hP->label].hint.x;        thisHint.y = oldHint[hP->label].hint.y;        oldHint[hP->label].inuse    = TRUE;        }      else        /* Compute new value for hint and store it for future use */        {        ComputeHint(hP, currX, currY, &thisHint);         oldHint[hP->label].hint.x = thisHint.x;        oldHint[hP->label].hint.y = thisHint.y;        oldHint[hP->label].inuse    = TRUE;        oldHint[hP->label].computed = TRUE;        }      }    else                             /* error */      {      abort("ProcessHint: invalid label", 7);      }    }  else if (hP->adjusttype == 'r')  /* Reverse */    {    /* Use the inverse of the existing hint value to reverse hint */    if ((hP->label >= 0) && (hP->label < MAXLABEL))      {      if (oldHint[hP->label].inuse)        {        thisHint.x = -oldHint[hP->label].hint.x;        thisHint.y = -oldHint[hP->label].hint.y;        oldHint[hP->label].inuse = FALSE;        }      else                           /* error */        {        abort("ProcessHint: label is not in use", 8);        }      }    else                           /* error */      {      abort("ProcessHint: invalid label", 9);      }     }  else                           /* error */    {    abort("ProcessHint: invalid adjusttype", 10);    }  IfTrace3((HintDebug > 1),"  label=%d, thisHint=(%d,%d)\n",    hP->label, thisHint.x, thisHint.y);   hintP->x += thisHint.x;  hintP->y += thisHint.y;   IfTrace2((HintDebug > 1),"  hint=(%d,%d)\n",    hintP->x, hintP->y);} 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品一区二区三区高清aⅴ | 欧美日韩精品二区第二页| 欧美麻豆精品久久久久久| 久久精品欧美日韩| 国产精品家庭影院| 麻豆精品在线观看| 欧美午夜精品久久久久久超碰| 日韩女优av电影| 亚洲精品久久7777| 国产精品中文字幕日韩精品 | 亚洲成人资源在线| 成人手机电影网| 亚洲精品一线二线三线| 亚洲国产精品麻豆| 色乱码一区二区三区88| 国产精品亲子伦对白| 男人操女人的视频在线观看欧美| 99久久夜色精品国产网站| 欧美成人免费网站| 视频一区视频二区中文| 色综合天天综合色综合av| 国产午夜亚洲精品羞羞网站| 蜜桃av一区二区三区电影| 欧美日韩国产高清一区| 亚洲人成网站精品片在线观看 | 欧美tk—视频vk| 无吗不卡中文字幕| 欧美精品少妇一区二区三区| 亚洲精品ww久久久久久p站| caoporn国产一区二区| 国产精品欧美一级免费| 国产一区二区三区黄视频| 精品免费日韩av| 青青草原综合久久大伊人精品优势 | 国产精品视频第一区| 麻豆精品国产传媒mv男同| 日韩精品一区二区在线| 另类人妖一区二区av| 日韩精品影音先锋| 黄网站免费久久| 精品久久人人做人人爰| 蜜桃av一区二区在线观看| 91精品国产手机| 丝袜诱惑制服诱惑色一区在线观看| 91欧美一区二区| 一区二区三区精品视频| 97se亚洲国产综合在线| 亚洲午夜一区二区三区| 欧美一卡在线观看| 久久99精品久久久久久动态图| 日韩一区二区精品葵司在线| 亚洲第一福利一区| 欧美日韩国产免费一区二区| 麻豆91小视频| 国产片一区二区三区| 成人av在线电影| 亚洲欧美激情在线| 欧美美女直播网站| 蜜桃传媒麻豆第一区在线观看| 精品国产乱码久久久久久1区2区| 福利一区二区在线| 一区二区三区免费在线观看| 91精品国产入口| 国产91精品在线观看| 亚洲v中文字幕| 久久精品视频一区二区三区| 色综合久久99| 狂野欧美性猛交blacked| 国产午夜亚洲精品理论片色戒| 99久久伊人久久99| 国产欧美精品一区aⅴ影院| 国产91在线观看丝袜| 亚洲综合丁香婷婷六月香| 欧美日韩在线亚洲一区蜜芽| 久久精品国产在热久久| 久久丝袜美腿综合| 国产一区二区不卡| 亚洲一本大道在线| 国产精品午夜久久| 日韩一二在线观看| 在线视频一区二区三| 国产精品一区免费视频| 婷婷成人激情在线网| 中文字幕一区二区三区不卡在线 | 一区二区三区高清不卡| 精品少妇一区二区三区日产乱码 | 91成人在线精品| 久久成人精品无人区| 亚洲激情欧美激情| 国产性天天综合网| 欧美白人最猛性xxxxx69交| 日本道色综合久久| 成人国产一区二区三区精品| 久久国产精品99久久人人澡| 午夜影视日本亚洲欧洲精品| 国产精品系列在线| 久久久精品综合| 精品sm在线观看| 日韩一区二区精品| 欧美一级淫片007| 欧美片网站yy| 欧美日韩一级二级| 欧美日韩一区二区三区免费看| 91色|porny| 91精品91久久久中77777| 成人免费黄色大片| 成人黄色在线网站| 成人视屏免费看| gogo大胆日本视频一区| 成人少妇影院yyyy| 成人av动漫网站| 成人一区在线观看| 国产精品中文欧美| 粉嫩嫩av羞羞动漫久久久| 国产精品一二二区| 成人午夜电影久久影院| 成人免费高清在线观看| 99久久99精品久久久久久| 99在线视频精品| 色欧美乱欧美15图片| av在线不卡免费看| 在线精品视频一区二区| 欧美性猛交xxxx乱大交退制版| 在线中文字幕一区二区| 在线日韩av片| 5566中文字幕一区二区电影| 欧美美女直播网站| 精品欧美一区二区在线观看| 久久久精品欧美丰满| 亚洲欧美在线视频观看| 亚洲国产精品成人综合| 1024成人网| 日韩精品91亚洲二区在线观看| 麻豆一区二区三| 成人激情动漫在线观看| 日本韩国一区二区| 在线成人av影院| 日韩欧美一级二级三级| 中文一区二区完整视频在线观看| 成人免费在线观看入口| 亚洲另类一区二区| 麻豆精品一二三| 成人福利视频在线| 这里只有精品免费| 国产无一区二区| 亚洲国产乱码最新视频 | 一区二区三区.www| 免费久久精品视频| 不卡的看片网站| 欧美丰满一区二区免费视频| 久久综合色8888| 一区二区三区在线视频播放| 老司机精品视频一区二区三区| 成人性生交大片免费看中文| 欧美日韩精品欧美日韩精品一综合| 亚洲精品在线观| 亚洲图片自拍偷拍| 国产黄色91视频| 欧美日韩三级在线| 国产日韩影视精品| 日韩精品每日更新| 91丝袜美女网| 久久精品一区四区| 日本aⅴ免费视频一区二区三区| 成人开心网精品视频| 欧美一区二区三区系列电影| 国产精品第四页| 精品无人码麻豆乱码1区2区 | 激情国产一区二区| 欧美色倩网站大全免费| 欧美极品aⅴ影院| 另类调教123区| 欧美色精品天天在线观看视频| 亚洲国产精品黑人久久久| 美女一区二区视频| 欧美精品久久久久久久多人混战 | 中文字幕一区二区三区不卡| 久久电影网电视剧免费观看| 在线这里只有精品| 国产精品精品国产色婷婷| 日韩国产精品久久久| 在线视频综合导航| 亚洲人快播电影网| 懂色av一区二区夜夜嗨| 亚洲精品一区二区三区精华液| 亚洲精品成人悠悠色影视| 99久久99久久久精品齐齐| 国产欧美日韩视频在线观看| 韩国毛片一区二区三区| 日韩欧美国产一区二区在线播放| 五月婷婷激情综合| 欧美三级资源在线| 亚洲国产wwwccc36天堂| 一本一道波多野结衣一区二区| 亚洲欧美一区二区视频| av在线播放一区二区三区| 国产精品福利av| 色综合久久久久综合体| 亚洲免费资源在线播放| 在线视频综合导航|