X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;ds=sidebyside;f=pdf%2Fxpdf%2FGfx.h;h=2069e97abcc07e3a349fc42e890961eef091dd58;hb=refs%2Ftags%2FGNOME_2_8_ANCHOR;hp=bdf56e8610503eff0c999e1a348298a29940873e;hpb=d5f6bff1a13c848afbd74dd2e82c78bbdead54d2;p=evince.git diff --git a/pdf/xpdf/Gfx.h b/pdf/xpdf/Gfx.h index bdf56e86..2069e97a 100644 --- a/pdf/xpdf/Gfx.h +++ b/pdf/xpdf/Gfx.h @@ -2,14 +2,16 @@ // // Gfx.h // -// Copyright 1996-2002 Glyph & Cog, LLC +// Copyright 1996-2003 Glyph & Cog, LLC // //======================================================================== #ifndef GFX_H #define GFX_H -#ifdef __GNUC__ +#include + +#ifdef USE_GCC_PRAGMAS #pragma interface #endif @@ -26,12 +28,16 @@ class OutputDev; class GfxFontDict; class GfxFont; class GfxPattern; +class GfxTilingPattern; +class GfxShadingPattern; class GfxShading; +class GfxFunctionShading; class GfxAxialShading; class GfxRadialShading; class GfxState; +struct GfxColor; class Gfx; -struct PDFRectangle; +class PDFRectangle; //------------------------------------------------------------------------ // Gfx @@ -95,13 +101,17 @@ class Gfx { public: // Constructor for regular output. - Gfx(XRef *xrefA, OutputDev *outA, int pageNum, Dict *resDict, double dpi, - PDFRectangle *box, GBool crop, PDFRectangle *cropBox, int rotate, - GBool printCommandsA); + Gfx(XRef *xrefA, OutputDev *outA, int pageNum, Dict *resDict, + double hDPI, double vDPI, PDFRectangle *box, GBool crop, + PDFRectangle *cropBox, int rotate, + GBool (*abortCheckCbkA)(void *data) = NULL, + void *abortCheckCbkDataA = NULL); // Constructor for a sub-page object. Gfx(XRef *xrefA, OutputDev *outA, Dict *resDict, - PDFRectangle *box, GBool crop, PDFRectangle *cropBox); + PDFRectangle *box, GBool crop, PDFRectangle *cropBox, + GBool (*abortCheckCbkA)(void *data) = NULL, + void *abortCheckCbkDataA = NULL); ~Gfx(); @@ -113,8 +123,11 @@ public: void doAnnot(Object *str, double xMin, double yMin, double xMax, double yMax); - void pushResources(Dict *resDict); - void popResources(); + // Save graphics state. + void saveState(); + + // Restore graphics state. + void restoreState(); private: @@ -131,9 +144,14 @@ private: int ignoreUndef; // current BX/EX nesting level double baseMatrix[6]; // default matrix for most recent // page/form/pattern + int formDepth; Parser *parser; // parser for page content stream(s) + GBool // callback to check for an abort + (*abortCheckCbk)(void *data); + void *abortCheckCbkData; + static Operator opTab[]; // table of operators void go(GBool topLevel); @@ -189,7 +207,14 @@ private: void opEOFillStroke(Object args[], int numArgs); void opCloseEOFillStroke(Object args[], int numArgs); void doPatternFill(GBool eoFill); + void doTilingPatternFill(GfxTilingPattern *tPat, GBool eoFill); + void doShadingPatternFill(GfxShadingPattern *sPat, GBool eoFill); void opShFill(Object args[], int numArgs); + void doFunctionShFill(GfxFunctionShading *shading); + void doFunctionShFill1(GfxFunctionShading *shading, + double x0, double y0, + double x1, double y1, + GfxColor *colors, int depth); void doAxialShFill(GfxAxialShading *shading); void doRadialShFill(GfxRadialShading *shading); void doEndPath(); @@ -248,6 +273,9 @@ private: void opBeginMarkedContent(Object args[], int numArgs); void opEndMarkedContent(Object args[], int numArgs); void opMarkPoint(Object args[], int numArgs); + + void pushResources(Dict *resDict); + void popResources(); }; #endif