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

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

?? splash.cc

?? 這是一個做pdf閱讀器的源代碼文件,是大家學習閱讀器資料的很好參考
?? CC
?? 第 1 頁 / 共 5 頁
字號:
//========================================================================//// Splash.cc////========================================================================#include <aconf.h>#ifdef USE_GCC_PRAGMAS#pragma implementation#endif#include <stdlib.h>#include <string.h>#include "gmem.h"#include "SplashErrorCodes.h"#include "SplashMath.h"#include "SplashBitmap.h"#include "SplashState.h"#include "SplashPath.h"#include "SplashXPath.h"#include "SplashXPathScanner.h"#include "SplashPattern.h"#include "SplashScreen.h"#include "SplashFont.h"#include "SplashGlyphBitmap.h"#include "Splash.h"//------------------------------------------------------------------------// distance of Bezier control point from center for circle approximation// = (4 * (sqrt(2) - 1) / 3) * r#define bezierCircle ((SplashCoord)0.55228475)#define bezierCircle2 ((SplashCoord)(0.5 * 0.55228475))// Divide a 16-bit value (in [0, 255*255]) by 255, returning an 8-bit result.static inline Guchar div255(int x) {  return (Guchar)((x + (x >> 8) + 0x80) >> 8);}//------------------------------------------------------------------------// SplashPipe//------------------------------------------------------------------------#define splashPipeMaxStages 9struct SplashPipe {  // pixel coordinates  int x, y;  // source pattern  SplashPattern *pattern;  // source alpha and color  SplashCoord aInput;  GBool usesShape;  Guchar aSrc;  SplashColorPtr cSrc;  SplashColor cSrcVal;  // non-isolated group alpha0  Guchar *alpha0Ptr;  // soft mask  SplashColorPtr softMaskPtr;  // destination alpha and color  SplashColorPtr destColorPtr;  int destColorMask;  Guchar *destAlphaPtr;  // shape  SplashCoord shape;  // result alpha and color  GBool noTransparency;  SplashPipeResultColorCtrl resultColorCtrl;  // non-isolated group correction  int nonIsolatedGroup;};SplashPipeResultColorCtrl Splash::pipeResultColorNoAlphaBlend[] = {  splashPipeResultColorNoAlphaBlendMono,  splashPipeResultColorNoAlphaBlendMono,  splashPipeResultColorNoAlphaBlendRGB,  splashPipeResultColorNoAlphaBlendRGB#if SPLASH_CMYK  ,  splashPipeResultColorNoAlphaBlendCMYK#endif};SplashPipeResultColorCtrl Splash::pipeResultColorAlphaNoBlend[] = {  splashPipeResultColorAlphaNoBlendMono,  splashPipeResultColorAlphaNoBlendMono,  splashPipeResultColorAlphaNoBlendRGB,  splashPipeResultColorAlphaNoBlendRGB#if SPLASH_CMYK  ,  splashPipeResultColorAlphaNoBlendCMYK#endif};SplashPipeResultColorCtrl Splash::pipeResultColorAlphaBlend[] = {  splashPipeResultColorAlphaBlendMono,  splashPipeResultColorAlphaBlendMono,  splashPipeResultColorAlphaBlendRGB,  splashPipeResultColorAlphaBlendRGB#if SPLASH_CMYK  ,  splashPipeResultColorAlphaBlendCMYK#endif};//------------------------------------------------------------------------static void blendXor(SplashColorPtr src, SplashColorPtr dest,		     SplashColorPtr blend, SplashColorMode cm) {  int i;  for (i = 0; i < splashColorModeNComps[cm]; ++i) {    blend[i] = src[i] ^ dest[i];  }}//------------------------------------------------------------------------// modified region//------------------------------------------------------------------------void Splash::clearModRegion() {  modXMin = bitmap->getWidth();  modYMin = bitmap->getHeight();  modXMax = -1;  modYMax = -1;}inline void Splash::updateModX(int x) {  if (x < modXMin) {    modXMin = x;  }  if (x > modXMax) {    modXMax = x;  }}inline void Splash::updateModY(int y) {  if (y < modYMin) {    modYMin = y;  }  if (y > modYMax) {    modYMax = y;  }}//------------------------------------------------------------------------// pipeline//------------------------------------------------------------------------inline void Splash::pipeInit(SplashPipe *pipe, int x, int y,			     SplashPattern *pattern, SplashColorPtr cSrc,			     SplashCoord aInput, GBool usesShape,			     GBool nonIsolatedGroup) {  pipeSetXY(pipe, x, y);  pipe->pattern = NULL;  // source color  if (pattern) {    if (pattern->isStatic()) {      pattern->getColor(x, y, pipe->cSrcVal);    } else {      pipe->pattern = pattern;    }    pipe->cSrc = pipe->cSrcVal;  } else {    pipe->cSrc = cSrc;  }  // source alpha  pipe->aInput = aInput;  if (!state->softMask) {    if (usesShape) {      pipe->aInput *= 255;    } else {      pipe->aSrc = (Guchar)splashRound(pipe->aInput * 255);    }  }  pipe->usesShape = usesShape;  // result alpha  if (aInput == 1 && !state->softMask && !usesShape &&      !state->inNonIsolatedGroup) {    pipe->noTransparency = gTrue;  } else {    pipe->noTransparency = gFalse;  }  // result color  if (pipe->noTransparency) {    // the !state->blendFunc case is handled separately in pipeRun    pipe->resultColorCtrl = pipeResultColorNoAlphaBlend[bitmap->mode];  } else if (!state->blendFunc) {    pipe->resultColorCtrl = pipeResultColorAlphaNoBlend[bitmap->mode];  } else {    pipe->resultColorCtrl = pipeResultColorAlphaBlend[bitmap->mode];  }  // non-isolated group correction  if (nonIsolatedGroup) {    pipe->nonIsolatedGroup = splashColorModeNComps[bitmap->mode];  } else {    pipe->nonIsolatedGroup = 0;  }}inline void Splash::pipeRun(SplashPipe *pipe) {  Guchar aSrc, aDest, alpha2, alpha0, aResult;  SplashColor cDest, cBlend;  Guchar cResult0, cResult1, cResult2, cResult3;  //----- source color  // static pattern: handled in pipeInit  // fixed color: handled in pipeInit  // dynamic pattern  if (pipe->pattern) {    pipe->pattern->getColor(pipe->x, pipe->y, pipe->cSrcVal);  }  if (pipe->noTransparency && !state->blendFunc) {    //----- write destination pixel    switch (bitmap->mode) {    case splashModeMono1:      cResult0 = pipe->cSrc[0];      if (state->screen->test(pipe->x, pipe->y, cResult0)) {	*pipe->destColorPtr |= pipe->destColorMask;      } else {	*pipe->destColorPtr &= ~pipe->destColorMask;      }      if (!(pipe->destColorMask >>= 1)) {	pipe->destColorMask = 0x80;	++pipe->destColorPtr;      }      break;    case splashModeMono8:      *pipe->destColorPtr++ = pipe->cSrc[0];      break;    case splashModeRGB8:      *pipe->destColorPtr++ = pipe->cSrc[0];      *pipe->destColorPtr++ = pipe->cSrc[1];      *pipe->destColorPtr++ = pipe->cSrc[2];      break;    case splashModeBGR8:      *pipe->destColorPtr++ = pipe->cSrc[2];      *pipe->destColorPtr++ = pipe->cSrc[1];      *pipe->destColorPtr++ = pipe->cSrc[0];      break;#if SPLASH_CMYK    case splashModeCMYK8:      *pipe->destColorPtr++ = pipe->cSrc[0];      *pipe->destColorPtr++ = pipe->cSrc[1];      *pipe->destColorPtr++ = pipe->cSrc[2];      *pipe->destColorPtr++ = pipe->cSrc[3];      break;#endif    }    if (pipe->destAlphaPtr) {      *pipe->destAlphaPtr++ = 255;    }  } else {    //----- read destination pixel    switch (bitmap->mode) {    case splashModeMono1:      cDest[0] = (*pipe->destColorPtr & pipe->destColorMask) ? 0xff : 0x00;      break;    case splashModeMono8:      cDest[0] = *pipe->destColorPtr;      break;    case splashModeRGB8:      cDest[0] = pipe->destColorPtr[0];      cDest[1] = pipe->destColorPtr[1];      cDest[2] = pipe->destColorPtr[2];      break;    case splashModeBGR8:      cDest[0] = pipe->destColorPtr[2];      cDest[1] = pipe->destColorPtr[1];      cDest[2] = pipe->destColorPtr[0];      break;#if SPLASH_CMYK    case splashModeCMYK8:      cDest[0] = pipe->destColorPtr[0];      cDest[1] = pipe->destColorPtr[1];      cDest[2] = pipe->destColorPtr[2];      cDest[3] = pipe->destColorPtr[3];      break;#endif    }    if (pipe->destAlphaPtr) {      aDest = *pipe->destAlphaPtr;    } else {      aDest = 0xff;    }    //----- blend function    if (state->blendFunc) {      (*state->blendFunc)(pipe->cSrc, cDest, cBlend, bitmap->mode);    }    //----- source alpha    if (state->softMask) {      if (pipe->usesShape) {	aSrc = (Guchar)splashRound(pipe->aInput * *pipe->softMaskPtr++				   * pipe->shape);      } else {	aSrc = (Guchar)splashRound(pipe->aInput * *pipe->softMaskPtr++);      }    } else if (pipe->usesShape) {      // pipe->aInput is premultiplied by 255 in pipeInit      aSrc = (Guchar)splashRound(pipe->aInput * pipe->shape);    } else {      // precomputed in pipeInit      aSrc = pipe->aSrc;    }    //----- result alpha and non-isolated group element correction    if (pipe->noTransparency) {      alpha2 = aResult = 255;    } else {      aResult = aSrc + aDest - div255(aSrc * aDest);      if (pipe->alpha0Ptr) {	alpha0 = *pipe->alpha0Ptr++;	alpha2 = aResult + alpha0 - div255(aResult * alpha0);      } else {	alpha2 = aResult;      }    }    //----- result color    cResult0 = cResult1 = cResult2 = cResult3 = 0; // make gcc happy    switch (pipe->resultColorCtrl) {#if SPLASH_CMYK    case splashPipeResultColorNoAlphaBlendCMYK:      cResult3 = div255((255 - aDest) * pipe->cSrc[3] + aDest * cBlend[3]);#endif    case splashPipeResultColorNoAlphaBlendRGB:      cResult2 = div255((255 - aDest) * pipe->cSrc[2] + aDest * cBlend[2]);      cResult1 = div255((255 - aDest) * pipe->cSrc[1] + aDest * cBlend[1]);    case splashPipeResultColorNoAlphaBlendMono:      cResult0 = div255((255 - aDest) * pipe->cSrc[0] + aDest * cBlend[0]);      break;    case splashPipeResultColorAlphaNoBlendMono:      if (alpha2 == 0) {	cResult0 = 0;      } else {	cResult0 = (Guchar)(((alpha2 - aSrc) * cDest[0] +			     aSrc * pipe->cSrc[0]) / alpha2);      }      break;    case splashPipeResultColorAlphaNoBlendRGB:      if (alpha2 == 0) {	cResult0 = 0;	cResult1 = 0;	cResult2 = 0;      } else {	cResult0 = (Guchar)(((alpha2 - aSrc) * cDest[0] +			     aSrc * pipe->cSrc[0]) / alpha2);	cResult1 = (Guchar)(((alpha2 - aSrc) * cDest[1] +			     aSrc * pipe->cSrc[1]) / alpha2);	cResult2 = (Guchar)(((alpha2 - aSrc) * cDest[2] +			     aSrc * pipe->cSrc[2]) / alpha2);      }      break;#if SPLASH_CMYK    case splashPipeResultColorAlphaNoBlendCMYK:      if (alpha2 == 0) {	cResult0 = 0;	cResult1 = 0;	cResult2 = 0;	cResult3 = 0;      } else {	cResult0 = (Guchar)(((alpha2 - aSrc) * cDest[0] +			     aSrc * pipe->cSrc[0]) / alpha2);	cResult1 = (Guchar)(((alpha2 - aSrc) * cDest[1] +			     aSrc * pipe->cSrc[1]) / alpha2);	cResult2 = (Guchar)(((alpha2 - aSrc) * cDest[2] +			     aSrc * pipe->cSrc[2]) / alpha2);	cResult3 = (Guchar)(((alpha2 - aSrc) * cDest[3] +			     aSrc * pipe->cSrc[3]) / alpha2);      }      break;#endif    case splashPipeResultColorAlphaBlendMono:      if (alpha2 == 0) {	cResult0 = 0;      } else {	cResult0 = (Guchar)(((alpha2 - aSrc) * cDest[0] +			     aSrc * ((255 - aDest) * pipe->cSrc[0] +				     aDest * cBlend[0]) / 255) /			    alpha2);      }      break;    case splashPipeResultColorAlphaBlendRGB:      if (alpha2 == 0) {	cResult0 = 0;	cResult1 = 0;	cResult2 = 0;      } else {	cResult0 = (Guchar)(((alpha2 - aSrc) * cDest[0] +			     aSrc * ((255 - aDest) * pipe->cSrc[0] +				     aDest * cBlend[0]) / 255) /			    alpha2);	cResult1 = (Guchar)(((alpha2 - aSrc) * cDest[1] +			     aSrc * ((255 - aDest) * pipe->cSrc[1] +				     aDest * cBlend[1]) / 255) /			    alpha2);	cResult2 = (Guchar)(((alpha2 - aSrc) * cDest[2] +			     aSrc * ((255 - aDest) * pipe->cSrc[2] +				     aDest * cBlend[2]) / 255) /			    alpha2);      }      break;#if SPLASH_CMYK    case splashPipeResultColorAlphaBlendCMYK:      if (alpha2 == 0) {	cResult0 = 0;	cResult1 = 0;	cResult2 = 0;	cResult3 = 0;      } else {	cResult0 = (Guchar)(((alpha2 - aSrc) * cDest[0] +			     aSrc * ((255 - aDest) * pipe->cSrc[0] +				     aDest * cBlend[0]) / 255) /			    alpha2);	cResult1 = (Guchar)(((alpha2 - aSrc) * cDest[1] +			     aSrc * ((255 - aDest) * pipe->cSrc[1] +				     aDest * cBlend[1]) / 255) /			    alpha2);	cResult2 = (Guchar)(((alpha2 - aSrc) * cDest[2] +			     aSrc * ((255 - aDest) * pipe->cSrc[2] +				     aDest * cBlend[2]) / 255) /			    alpha2);	cResult3 = (Guchar)(((alpha2 - aSrc) * cDest[3] +			     aSrc * ((255 - aDest) * pipe->cSrc[3] +				     aDest * cBlend[3]) / 255) /			    alpha2);      }      break;#endif    }    //----- non-isolated group correction    if (aResult != 0) {      switch (pipe->nonIsolatedGroup) {#if SPLASH_CMYK      case 4:	cResult3 += (cResult3 - cDest[3]) * aDest *	            (255 - aResult) / (255 * aResult);#endif      case 3:	cResult2 += (cResult2 - cDest[2]) * aDest *	            (255 - aResult) / (255 * aResult);	cResult1 += (cResult1 - cDest[1]) * aDest *	            (255 - aResult) / (255 * aResult);      case 1:	cResult0 += (cResult0 - cDest[0]) * aDest *	            (255 - aResult) / (255 * aResult);      case 0:	break;      }    }    //----- write destination pixel    switch (bitmap->mode) {    case splashModeMono1:      if (state->screen->test(pipe->x, pipe->y, cResult0)) {	*pipe->destColorPtr |= pipe->destColorMask;      } else {	*pipe->destColorPtr &= ~pipe->destColorMask;      }      if (!(pipe->destColorMask >>= 1)) {	pipe->destColorMask = 0x80;	++pipe->destColorPtr;      }      break;    case splashModeMono8:      *pipe->destColorPtr++ = cResult0;      break;    case splashModeRGB8:

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩理论片在线| 欧美日韩中文字幕一区二区| 婷婷中文字幕一区三区| 中文字幕佐山爱一区二区免费| 国产午夜一区二区三区| 欧美国产视频在线| 国产精品久久久久久户外露出| 国产人久久人人人人爽| 国产欧美日本一区二区三区| 欧美精品一区二区三区四区| 亚洲精品一区二区三区蜜桃下载| 欧美一区二区三区爱爱| 日韩一级欧美一级| 欧美v日韩v国产v| 久久夜色精品国产欧美乱极品| 久久亚洲精精品中文字幕早川悠里| 欧美一区二区在线播放| 欧美大度的电影原声| 日韩一区二区三区视频| 久久影院午夜论| 亚洲视频一区二区在线观看| 亚洲精品va在线观看| 五月天激情综合网| 狠狠色伊人亚洲综合成人| 国产精品 欧美精品| 波多野结衣在线一区| 在线视频欧美精品| 91精品国产高清一区二区三区| 日韩欧美资源站| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 91麻豆精品国产无毒不卡在线观看| 欧美日韩一区二区在线观看 | 91视频www| 欧美精品第1页| 久久精品这里都是精品| 亚洲欧美一区二区三区国产精品| 亚洲一区二区欧美| 国产成人在线观看免费网站| 91年精品国产| 日韩欧美亚洲一区二区| 亚洲欧美一区二区三区极速播放 | 伊人开心综合网| 久久精品噜噜噜成人av农村| 成人av电影在线| 欧美一级在线观看| 最新久久zyz资源站| 日韩激情视频网站| av高清不卡在线| 欧美精品三级日韩久久| 亚洲欧洲另类国产综合| 久久9热精品视频| 欧美在线色视频| 日本一二三不卡| 黄一区二区三区| 欧美高清激情brazzers| 自拍偷自拍亚洲精品播放| 激情久久久久久久久久久久久久久久| 色婷婷香蕉在线一区二区| 2020日本不卡一区二区视频| 偷拍日韩校园综合在线| 色综合久久久久| 中文字幕第一区综合| 国产在线国偷精品产拍免费yy| 欧美少妇一区二区| 中文字幕在线视频一区| 丰满亚洲少妇av| 久久久美女毛片| 美女网站色91| 日韩免费观看高清完整版| 午夜精品福利一区二区三区av| 一本色道亚洲精品aⅴ| 久久久国产综合精品女国产盗摄| 日本不卡不码高清免费观看| 欧美三级资源在线| 夜夜操天天操亚洲| 99re热这里只有精品视频| 欧美激情一二三区| av资源站一区| 亚洲欧美日韩国产另类专区| 91在线码无精品| 亚洲黄色av一区| 欧洲精品在线观看| 亚洲成人黄色影院| 91精品国产综合久久久久久久 | 欧美日韩免费一区二区三区| 亚洲日本va午夜在线电影| 99国产精品久久久久久久久久久 | 亚洲精品成a人| 色婷婷久久久综合中文字幕| 亚洲自拍欧美精品| 欧美精品久久天天躁| 视频一区欧美精品| 欧美电影免费观看高清完整版在线| 麻豆91在线观看| 欧美国产精品一区| 欧美在线观看一区二区| 午夜成人免费视频| 久久五月婷婷丁香社区| 成人动漫一区二区三区| 亚洲精品成人悠悠色影视| 欧美伦理视频网站| 国内精品国产成人国产三级粉色| 久久久精品免费网站| 色欧美日韩亚洲| 日本视频在线一区| 国产精品三级久久久久三级| 91福利视频在线| 麻豆视频观看网址久久| 中文字幕乱码日本亚洲一区二区| 99久久亚洲一区二区三区青草| 亚洲二区在线视频| 欧美精品一区二| av成人免费在线| 免费在线观看一区二区三区| 国产精品无人区| 制服丝袜在线91| 色综合久久66| 激情综合色播激情啊| 亚洲人成小说网站色在线| 精品国产乱码久久久久久闺蜜| 丁香桃色午夜亚洲一区二区三区| 亚洲综合丝袜美腿| 亚洲国产成人午夜在线一区| 一区二区在线看| 久久久蜜臀国产一区二区| 欧美系列在线观看| 国产成人精品综合在线观看| 一区二区三区日韩| 中文字幕av一区二区三区| 在线播放视频一区| www.久久久久久久久| 日本中文一区二区三区| 亚洲精品国产a久久久久久| 久久精品人人爽人人爽| 欧美老女人在线| 日本乱码高清不卡字幕| 国产精品69久久久久水密桃| 亚洲国产色一区| 亚洲另类春色国产| 国产精品久久久久桃色tv| 精品成人一区二区| 欧美一区二区三区小说| 欧美色图片你懂的| 欧洲av在线精品| 91精品福利视频| 色乱码一区二区三区88| av一区二区三区四区| 成人亚洲精品久久久久软件| 精品一区二区三区在线观看国产| 石原莉奈在线亚洲三区| 亚洲午夜久久久久中文字幕久| 亚洲欧美中日韩| 亚洲三级久久久| 一个色在线综合| 一区二区三区日韩| 亚洲二区在线视频| 日本系列欧美系列| 日本欧美肥老太交大片| 五月天激情综合| 美日韩黄色大片| 国产乱码一区二区三区| 国产综合色视频| 国产高清在线精品| 成人三级伦理片| 一本一道波多野结衣一区二区| 在线一区二区视频| 欧美日韩一区二区三区免费看| 欧美性xxxxx极品少妇| 91精品国模一区二区三区| 欧美大片顶级少妇| 欧美激情在线观看视频免费| 国产精品久久久久久福利一牛影视| 中文字幕一区二区三区在线不卡| 怡红院av一区二区三区| 日韩在线一二三区| 紧缚奴在线一区二区三区| 国产夫妻精品视频| 色综合久久久久久久久久久| 欧美日韩国产经典色站一区二区三区| 91精品国模一区二区三区| 久久精品视频免费| 亚洲精品写真福利| 美女在线观看视频一区二区| 粉嫩av一区二区三区| 欧美丝袜第三区| 久久综合九色综合97婷婷女人 | 欧美一级高清片| 久久精品男人的天堂| 亚洲天堂av一区| 免费亚洲电影在线| 成人三级伦理片| 91精品国产综合久久福利 | 97精品视频在线观看自产线路二 | 日韩电影在线观看网站| 国产成人午夜精品影院观看视频| 色噜噜狠狠色综合欧洲selulu| 欧美一区二区女人| 亚洲精品ww久久久久久p站| 极品少妇xxxx精品少妇| caoporn国产精品|