You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
103 lines
2.6 KiB
103 lines
2.6 KiB
//========================================================================
|
|
//
|
|
// SplashState.h
|
|
//
|
|
//========================================================================
|
|
|
|
#ifndef SPLASHSTATE_H
|
|
#define SPLASHSTATE_H
|
|
|
|
#include <aconf.h>
|
|
|
|
#ifdef USE_GCC_PRAGMAS
|
|
#pragma interface
|
|
#endif
|
|
|
|
#include "SplashTypes.h"
|
|
|
|
class SplashPattern;
|
|
class SplashScreen;
|
|
class SplashClip;
|
|
class SplashBitmap;
|
|
|
|
//------------------------------------------------------------------------
|
|
// line cap values
|
|
//------------------------------------------------------------------------
|
|
|
|
#define splashLineCapButt 0
|
|
#define splashLineCapRound 1
|
|
#define splashLineCapProjecting 2
|
|
|
|
//------------------------------------------------------------------------
|
|
// line join values
|
|
//------------------------------------------------------------------------
|
|
|
|
#define splashLineJoinMiter 0
|
|
#define splashLineJoinRound 1
|
|
#define splashLineJoinBevel 2
|
|
|
|
//------------------------------------------------------------------------
|
|
// SplashState
|
|
//------------------------------------------------------------------------
|
|
|
|
class SplashState {
|
|
public:
|
|
|
|
// Create a new state object, initialized with default settings.
|
|
SplashState(int width, int height, GBool vectorAntialias,
|
|
SplashScreenParams *screenParams);
|
|
SplashState(int width, int height, GBool vectorAntialias,
|
|
SplashScreen *screenA);
|
|
|
|
// Copy a state object.
|
|
SplashState *copy() { return new SplashState(this); }
|
|
|
|
~SplashState();
|
|
|
|
// Set the stroke pattern. This does not copy <strokePatternA>.
|
|
void setStrokePattern(SplashPattern *strokePatternA);
|
|
|
|
// Set the fill pattern. This does not copy <fillPatternA>.
|
|
void setFillPattern(SplashPattern *fillPatternA);
|
|
|
|
// Set the screen. This does not copy <screenA>.
|
|
void setScreen(SplashScreen *screenA);
|
|
|
|
// Set the line dash pattern. This copies the <lineDashA> array.
|
|
void setLineDash(SplashCoord *lineDashA, int lineDashLengthA,
|
|
SplashCoord lineDashPhaseA);
|
|
|
|
// Set the soft mask bitmap.
|
|
void setSoftMask(SplashBitmap *softMaskA);
|
|
|
|
private:
|
|
|
|
SplashState(SplashState *state);
|
|
|
|
SplashCoord matrix[6];
|
|
SplashPattern *strokePattern;
|
|
SplashPattern *fillPattern;
|
|
SplashScreen *screen;
|
|
SplashBlendFunc blendFunc;
|
|
SplashCoord strokeAlpha;
|
|
SplashCoord fillAlpha;
|
|
SplashCoord lineWidth;
|
|
int lineCap;
|
|
int lineJoin;
|
|
SplashCoord miterLimit;
|
|
SplashCoord flatness;
|
|
SplashCoord *lineDash;
|
|
int lineDashLength;
|
|
SplashCoord lineDashPhase;
|
|
GBool strokeAdjust;
|
|
SplashClip *clip;
|
|
SplashBitmap *softMask;
|
|
GBool deleteSoftMask;
|
|
GBool inNonIsolatedGroup;
|
|
|
|
SplashState *next; // used by Splash class
|
|
|
|
friend class Splash;
|
|
};
|
|
|
|
#endif
|
|
|