⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gfxstate.h

📁 swf文件查看工具,能够看flash文件的格式
💻 H
📖 第 1 页 / 共 3 页
字号:
//========================================================================//// GfxState.h//// Copyright 1996-2003 Glyph & Cog, LLC////========================================================================#ifndef GFXSTATE_H#define GFXSTATE_H#include <aconf.h>#ifdef USE_GCC_PRAGMAS#pragma interface#endif#include "gtypes.h"#include "Object.h"#include "Function.h"class Array;class GfxFont;class PDFRectangle;class GfxShading;//------------------------------------------------------------------------// GfxBlendMode//------------------------------------------------------------------------enum GfxBlendMode {  gfxBlendNormal,  gfxBlendMultiply,  gfxBlendScreen,  gfxBlendOverlay,  gfxBlendDarken,  gfxBlendLighten,  gfxBlendColorDodge,  gfxBlendColorBurn,  gfxBlendHardLight,  gfxBlendSoftLight,  gfxBlendDifference,  gfxBlendExclusion,  gfxBlendHue,  gfxBlendSaturation,  gfxBlendColor,  gfxBlendLuminosity};//------------------------------------------------------------------------// GfxColorComp//------------------------------------------------------------------------// 16.16 fixed point color componenttypedef int GfxColorComp;#define gfxColorComp1 0x10000static inline GfxColorComp dblToCol(double x) {  return (GfxColorComp)(x * gfxColorComp1);}static inline double colToDbl(GfxColorComp x) {  return (double)x / (double)gfxColorComp1;}static inline GfxColorComp byteToCol(Guchar x) {  // (x / 255) << 16  =  (0.0000000100000001... * x) << 16  //                  =  ((x << 8) + (x) + (x >> 8) + ...) << 16  //                  =  (x << 8) + (x) + (x >> 7)  //                                      [for rounding]  return (GfxColorComp)((x << 8) + x + (x >> 7));}static inline Guchar colToByte(GfxColorComp x) {  // 255 * x + 0.5  =  256 * x - x + 0x8000  return (Guchar)(((x << 8) - x + 0x8000) >> 16);}//------------------------------------------------------------------------// GfxColor//------------------------------------------------------------------------#define gfxColorMaxComps funcMaxOutputsstruct GfxColor {  GfxColorComp c[gfxColorMaxComps];};//------------------------------------------------------------------------// GfxGray//------------------------------------------------------------------------typedef GfxColorComp GfxGray;//------------------------------------------------------------------------// GfxRGB//------------------------------------------------------------------------struct GfxRGB {  GfxColorComp r, g, b;};//------------------------------------------------------------------------// GfxCMYK//------------------------------------------------------------------------struct GfxCMYK {  GfxColorComp c, m, y, k;};//------------------------------------------------------------------------// GfxColorSpace//------------------------------------------------------------------------// NB: The nGfxColorSpaceModes constant and the gfxColorSpaceModeNames// array defined in GfxState.cc must match this enum.enum GfxColorSpaceMode {  csDeviceGray,  csCalGray,  csDeviceRGB,  csCalRGB,  csDeviceCMYK,  csLab,  csICCBased,  csIndexed,  csSeparation,  csDeviceN,  csPattern};class GfxColorSpace {public:  GfxColorSpace();  virtual ~GfxColorSpace();  virtual GfxColorSpace *copy() = 0;  virtual GfxColorSpaceMode getMode() = 0;  // Construct a color space.  Returns NULL if unsuccessful.  static GfxColorSpace *parse(Object *csObj);  // Convert to gray, RGB, or CMYK.  virtual void getGray(GfxColor *color, GfxGray *gray) = 0;  virtual void getRGB(GfxColor *color, GfxRGB *rgb) = 0;  virtual void getCMYK(GfxColor *color, GfxCMYK *cmyk) = 0;  // Return the number of color components.  virtual int getNComps() = 0;  // Get this color space's default color.  virtual void getDefaultColor(GfxColor *color) = 0;  // Return the default ranges for each component, assuming an image  // with a max pixel value of <maxImgPixel>.  virtual void getDefaultRanges(double *decodeLow, double *decodeRange,				int maxImgPixel);  // Returns true if painting operations in this color space never  // mark the page (e.g., the "None" colorant).  virtual GBool isNonMarking() { return gFalse; }  // Return the number of color space modes  static int getNumColorSpaceModes();  // Return the name of the <idx>th color space mode.  static char *getColorSpaceModeName(int idx);private:};//------------------------------------------------------------------------// GfxDeviceGrayColorSpace//------------------------------------------------------------------------class GfxDeviceGrayColorSpace: public GfxColorSpace {public:  GfxDeviceGrayColorSpace();  virtual ~GfxDeviceGrayColorSpace();  virtual GfxColorSpace *copy();  virtual GfxColorSpaceMode getMode() { return csDeviceGray; }  virtual void getGray(GfxColor *color, GfxGray *gray);  virtual void getRGB(GfxColor *color, GfxRGB *rgb);  virtual void getCMYK(GfxColor *color, GfxCMYK *cmyk);  virtual int getNComps() { return 1; }  virtual void getDefaultColor(GfxColor *color);private:};//------------------------------------------------------------------------// GfxCalGrayColorSpace//------------------------------------------------------------------------class GfxCalGrayColorSpace: public GfxColorSpace {public:  GfxCalGrayColorSpace();  virtual ~GfxCalGrayColorSpace();  virtual GfxColorSpace *copy();  virtual GfxColorSpaceMode getMode() { return csCalGray; }  // Construct a CalGray color space.  Returns NULL if unsuccessful.  static GfxColorSpace *parse(Array *arr);  virtual void getGray(GfxColor *color, GfxGray *gray);  virtual void getRGB(GfxColor *color, GfxRGB *rgb);  virtual void getCMYK(GfxColor *color, GfxCMYK *cmyk);  virtual int getNComps() { return 1; }  virtual void getDefaultColor(GfxColor *color);  // CalGray-specific access.  double getWhiteX() { return whiteX; }  double getWhiteY() { return whiteY; }  double getWhiteZ() { return whiteZ; }  double getBlackX() { return blackX; }  double getBlackY() { return blackY; }  double getBlackZ() { return blackZ; }  double getGamma() { return gamma; }private:  double whiteX, whiteY, whiteZ;    // white point  double blackX, blackY, blackZ;    // black point  double gamma;			    // gamma value};//------------------------------------------------------------------------// GfxDeviceRGBColorSpace//------------------------------------------------------------------------class GfxDeviceRGBColorSpace: public GfxColorSpace {public:  GfxDeviceRGBColorSpace();  virtual ~GfxDeviceRGBColorSpace();  virtual GfxColorSpace *copy();  virtual GfxColorSpaceMode getMode() { return csDeviceRGB; }  virtual void getGray(GfxColor *color, GfxGray *gray);  virtual void getRGB(GfxColor *color, GfxRGB *rgb);  virtual void getCMYK(GfxColor *color, GfxCMYK *cmyk);  virtual int getNComps() { return 3; }  virtual void getDefaultColor(GfxColor *color);private:};//------------------------------------------------------------------------// GfxCalRGBColorSpace//------------------------------------------------------------------------class GfxCalRGBColorSpace: public GfxColorSpace {public:  GfxCalRGBColorSpace();  virtual ~GfxCalRGBColorSpace();  virtual GfxColorSpace *copy();  virtual GfxColorSpaceMode getMode() { return csCalRGB; }  // Construct a CalRGB color space.  Returns NULL if unsuccessful.  static GfxColorSpace *parse(Array *arr);  virtual void getGray(GfxColor *color, GfxGray *gray);  virtual void getRGB(GfxColor *color, GfxRGB *rgb);  virtual void getCMYK(GfxColor *color, GfxCMYK *cmyk);  virtual int getNComps() { return 3; }  virtual void getDefaultColor(GfxColor *color);  // CalRGB-specific access.  double getWhiteX() { return whiteX; }  double getWhiteY() { return whiteY; }  double getWhiteZ() { return whiteZ; }  double getBlackX() { return blackX; }  double getBlackY() { return blackY; }  double getBlackZ() { return blackZ; }  double getGammaR() { return gammaR; }  double getGammaG() { return gammaG; }  double getGammaB() { return gammaB; }  double *getMatrix() { return mat; }private:  double whiteX, whiteY, whiteZ;    // white point  double blackX, blackY, blackZ;    // black point  double gammaR, gammaG, gammaB;    // gamma values  double mat[9];		    // ABC -> XYZ transform matrix};//------------------------------------------------------------------------// GfxDeviceCMYKColorSpace//------------------------------------------------------------------------class GfxDeviceCMYKColorSpace: public GfxColorSpace {public:  GfxDeviceCMYKColorSpace();  virtual ~GfxDeviceCMYKColorSpace();  virtual GfxColorSpace *copy();  virtual GfxColorSpaceMode getMode() { return csDeviceCMYK; }  virtual void getGray(GfxColor *color, GfxGray *gray);  virtual void getRGB(GfxColor *color, GfxRGB *rgb);  virtual void getCMYK(GfxColor *color, GfxCMYK *cmyk);  virtual int getNComps() { return 4; }  virtual void getDefaultColor(GfxColor *color);private:};//------------------------------------------------------------------------// GfxLabColorSpace//------------------------------------------------------------------------class GfxLabColorSpace: public GfxColorSpace {public:  GfxLabColorSpace();  virtual ~GfxLabColorSpace();  virtual GfxColorSpace *copy();  virtual GfxColorSpaceMode getMode() { return csLab; }  // Construct a Lab color space.  Returns NULL if unsuccessful.  static GfxColorSpace *parse(Array *arr);  virtual void getGray(GfxColor *color, GfxGray *gray);  virtual void getRGB(GfxColor *color, GfxRGB *rgb);  virtual void getCMYK(GfxColor *color, GfxCMYK *cmyk);  virtual int getNComps() { return 3; }  virtual void getDefaultColor(GfxColor *color);  virtual void getDefaultRanges(double *decodeLow, double *decodeRange,				int maxImgPixel);  // Lab-specific access.  double getWhiteX() { return whiteX; }  double getWhiteY() { return whiteY; }  double getWhiteZ() { return whiteZ; }  double getBlackX() { return blackX; }  double getBlackY() { return blackY; }  double getBlackZ() { return blackZ; }  double getAMin() { return aMin; }  double getAMax() { return aMax; }  double getBMin() { return bMin; }  double getBMax() { return bMax; }private:  double whiteX, whiteY, whiteZ;    // white point  double blackX, blackY, blackZ;    // black point  double aMin, aMax, bMin, bMax;    // range for the a and b components  double kr, kg, kb;		    // gamut mapping mulitpliers};//------------------------------------------------------------------------// GfxICCBasedColorSpace//------------------------------------------------------------------------class GfxICCBasedColorSpace: public GfxColorSpace {public:  GfxICCBasedColorSpace(int nCompsA, GfxColorSpace *altA,			Ref *iccProfileStreamA);  virtual ~GfxICCBasedColorSpace();  virtual GfxColorSpace *copy();  virtual GfxColorSpaceMode getMode() { return csICCBased; }  // Construct an ICCBased color space.  Returns NULL if unsuccessful.  static GfxColorSpace *parse(Array *arr);  virtual void getGray(GfxColor *color, GfxGray *gray);  virtual void getRGB(GfxColor *color, GfxRGB *rgb);  virtual void getCMYK(GfxColor *color, GfxCMYK *cmyk);  virtual int getNComps() { return nComps; }  virtual void getDefaultColor(GfxColor *color);  virtual void getDefaultRanges(double *decodeLow, double *decodeRange,				int maxImgPixel);  // ICCBased-specific access.  GfxColorSpace *getAlt() { return alt; }private:  int nComps;			// number of color components (1, 3, or 4)  GfxColorSpace *alt;		// alternate color space  double rangeMin[4];		// min values for each component  double rangeMax[4];		// max values for each component  Ref iccProfileStream;		// the ICC profile};//------------------------------------------------------------------------// GfxIndexedColorSpace//------------------------------------------------------------------------class GfxIndexedColorSpace: public GfxColorSpace {public:  GfxIndexedColorSpace(GfxColorSpace *baseA, int indexHighA);  virtual ~GfxIndexedColorSpace();  virtual GfxColorSpace *copy();  virtual GfxColorSpaceMode getMode() { return csIndexed; }  // Construct a Lab color space.  Returns NULL if unsuccessful.  static GfxColorSpace *parse(Array *arr);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -