亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
91麻豆文化传媒在线观看| 色悠久久久久综合欧美99| 色婷婷精品久久二区二区蜜臂av| 在线免费av一区| 制服丝袜在线91| 99国产精品久久久| 精品三级av在线| 91福利资源站| 亚洲妇熟xx妇色黄| 这里只有精品电影| 中文字幕一区不卡| 国产精品 日产精品 欧美精品| 色94色欧美sute亚洲13| 国产精品久久久久婷婷二区次| 日产国产高清一区二区三区 | 麻豆专区一区二区三区四区五区| 成人va在线观看| 亚洲精品一区二区三区香蕉| 日韩专区欧美专区| 欧美日韩国产一级| 亚洲一区二区三区四区在线| 91亚洲男人天堂| 国产精品素人一区二区| 国产美女久久久久| 久久婷婷成人综合色| 麻豆91精品视频| 日韩欧美亚洲国产精品字幕久久久| 亚洲一级二级三级| 精品视频一区二区不卡| 亚洲视频狠狠干| 日本乱人伦一区| 亚洲一区二区3| 欧美视频中文字幕| 午夜伊人狠狠久久| 欧美人与禽zozo性伦| 亚洲亚洲人成综合网络| 欧美日韩国产成人在线免费| 亚洲成人综合网站| 51精品国自产在线| 麻豆成人在线观看| 精品成人私密视频| 懂色中文一区二区在线播放| 欧美高清在线视频| 91麻豆精东视频| 亚洲亚洲精品在线观看| 91精品国产麻豆| 久久精品国产亚洲一区二区三区| 欧美一级爆毛片| 国产一区二区精品久久| 亚洲国产成人午夜在线一区| 国产在线视视频有精品| 男女男精品视频| 国产盗摄精品一区二区三区在线| 欧美一区二区视频网站| 欧美一区二区三区播放老司机| 91视视频在线观看入口直接观看www| 亚洲成av人片在线观看无码| 亚洲另类中文字| 亚洲国产精品天堂| 奇米888四色在线精品| 奇米精品一区二区三区在线观看| 成人av在线观| 精品在线一区二区三区| 亚洲高清视频中文字幕| 国产色一区二区| 亚洲视频免费在线| 激情图区综合网| 666欧美在线视频| 日韩精品1区2区3区| 欧美tickling网站挠脚心| 色悠悠久久综合| 奇米色一区二区| 久久人人爽爽爽人久久久| 欧美日韩国产高清一区二区| 日韩免费一区二区| 亚洲伦在线观看| 成人永久aaa| 久久久精品黄色| 1000精品久久久久久久久| 麻豆成人在线观看| 91精品办公室少妇高潮对白| 久久精品视频一区二区| 亚洲成人黄色影院| 国产精品2024| 亚洲h精品动漫在线观看| 国产三级精品三级| 欧美丰满高潮xxxx喷水动漫| 成人ar影院免费观看视频| 亚洲精选一二三| 久久久久久久久久久黄色| 91福利资源站| 99精品欧美一区二区三区小说| 奇米影视在线99精品| 亚洲精品中文在线| 国产亚洲精久久久久久| 日韩精品一区二区三区在线播放| 99久久国产综合精品麻豆| 国产综合久久久久久鬼色 | 国产色91在线| 欧美一级免费大片| 在线视频综合导航| 99视频有精品| 94-欧美-setu| 成人福利电影精品一区二区在线观看 | 国产精品一区在线观看乱码| 午夜影院久久久| 性做久久久久久免费观看| 夜夜嗨av一区二区三区四季av| 国产精品免费看片| 国产欧美一区视频| 国产日产亚洲精品系列| 国产亚洲精品久| 欧美极品少妇xxxxⅹ高跟鞋 | 国产麻豆视频一区| 精品亚洲欧美一区| 精品一区中文字幕| 激情深爱一区二区| 国产精品1区二区.| 99在线精品视频| 91免费观看国产| 欧美亚洲自拍偷拍| 欧美日韩一区二区在线视频| 欧美色老头old∨ideo| 欧美日韩一区 二区 三区 久久精品| 色婷婷av一区二区三区大白胸| 色先锋资源久久综合| 91福利资源站| 欧美一区二区免费视频| 精品国产一区二区亚洲人成毛片 | 日韩毛片一二三区| 亚洲女人****多毛耸耸8| 亚洲愉拍自拍另类高清精品| 性欧美大战久久久久久久久| 奇米亚洲午夜久久精品| 国产九九视频一区二区三区| 成人激情免费电影网址| 欧洲在线/亚洲| 日韩三级精品电影久久久| 2021中文字幕一区亚洲| 国产精品女主播在线观看| 亚洲精品国产精品乱码不99| 天天影视网天天综合色在线播放| 六月丁香婷婷色狠狠久久| 国产乱码精品一品二品| 99精品视频在线观看| 欧美日韩精品是欧美日韩精品| 欧美成人性战久久| 国产精品电影院| 午夜视频在线观看一区| 国产成人午夜精品影院观看视频| 91网站在线观看视频| 欧美一区二区三区在线看| 欧美国产视频在线| 视频一区二区三区中文字幕| 国产成人午夜99999| 欧美丝袜丝交足nylons图片| 2021国产精品久久精品| 亚洲自拍欧美精品| 国产成人高清视频| 欧美日韩久久久一区| 国产精品私房写真福利视频| 亚洲成av人片观看| 9i看片成人免费高清| 精品国产制服丝袜高跟| 亚洲高清视频在线| 99久久伊人网影院| 精品国产91九色蝌蚪| 亚洲成人免费视| 91亚洲国产成人精品一区二三| 欧美不卡123| 亚欧色一区w666天堂| 91丨porny丨户外露出| 久久久精品日韩欧美| 日韩成人一级片| 欧美中文字幕一二三区视频| 国产欧美va欧美不卡在线| 美洲天堂一区二卡三卡四卡视频| 91在线视频18| 国产精品美女一区二区在线观看| 男男视频亚洲欧美| 在线播放/欧美激情| 亚洲一区影音先锋| 91原创在线视频| 国产精品午夜免费| 国产成人亚洲综合a∨猫咪| 欧美成人一级视频| 蜜臀av一区二区在线免费观看| 欧美日韩免费电影| 亚洲午夜日本在线观看| 色欧美乱欧美15图片| 亚洲欧洲日产国码二区| 成人黄色电影在线| 中文字幕高清一区| 成人免费视频app| 国产区在线观看成人精品 | 91片黄在线观看| 国产精品国产三级国产aⅴ入口| 国产精品1区2区3区在线观看| 精品福利av导航| 国产精品资源在线|