#ifndef _PEXPROTOST_H_
#define _PEXPROTOST_H_
#include <X11/Xmd.h>
#ifndef WORD64
typedef float PEXFLOAT;
#else
typedef CARD32 PEXFLOAT;
#endif
typedef CARD32 pexAsfAttribute;
typedef CARD8 pexAsfValue;
typedef CARD32 pexBitmask;
typedef CARD16 pexBitmaskShort;
typedef CARD16 pexCoordType;
typedef CARD16 pexComposition;
typedef CARD16 pexCullMode;
typedef BYTE pexDynamicType;
typedef INT16 pexEnumTypeIndex;
typedef XID pexLookupTable;
typedef CARD32 pexName;
typedef XID pexNameSet;
typedef XID pexPC;
typedef XID pexFont;
#ifndef WORD64
typedef PEXFLOAT pexMatrix[4][4];
typedef PEXFLOAT pexMatrix3X3[3][3];
#else
typedef CARD8 pexMatrix[64];
typedef CARD8 pexMatrix3X3[36];
#endif
typedef XID pexPhigsWks;
typedef XID pexPickMeasure;
typedef XID pexRenderer;
typedef XID pexSC;
typedef XID pexStructure;
typedef CARD8 pexSwitch;
typedef CARD16 pexTableIndex;
typedef CARD16 pexTableType;
typedef CARD16 pexTextHAlignment;
typedef CARD16 pexTextVAlignment;
typedef CARD16 pexTypeOrTableIndex;
typedef pexEnumTypeIndex pexColorType;
typedef struct {
CARD16 length B16;
} pexString;
typedef struct {
pexStructure sid B32;
PEXFLOAT priority B32;
} pexStructureInfo;
typedef struct {
PEXFLOAT x B32;
PEXFLOAT y B32;
} pexVector2D;
typedef struct {
PEXFLOAT x B32;
PEXFLOAT y B32;
PEXFLOAT z B32;
} pexVector3D;
typedef struct {
PEXFLOAT x B32;
PEXFLOAT y B32;
} pexCoord2D;
typedef struct {
PEXFLOAT x B32;
PEXFLOAT y B32;
PEXFLOAT z B32;
} pexCoord3D;
typedef struct {
PEXFLOAT x B32;
PEXFLOAT y B32;
PEXFLOAT z B32;
PEXFLOAT w B32;
} pexCoord4D;
typedef struct {
PEXFLOAT red B32;
PEXFLOAT green B32;
PEXFLOAT blue B32;
} pexRgbFloatColor;
typedef struct {
PEXFLOAT hue B32;
PEXFLOAT saturation B32;
PEXFLOAT value B32;
} pexHsvColor;
typedef struct {
PEXFLOAT hue B32;
PEXFLOAT lightness B32;
PEXFLOAT saturation B32;
} pexHlsColor;
typedef struct {
PEXFLOAT x B32;
PEXFLOAT y B32;
PEXFLOAT z B32;
} pexCieColor;
typedef struct {
CARD8 red;
CARD8 green;
CARD8 blue;
CARD8 pad;
} pexRgb8Color;
typedef struct {
CARD16 red B16;
CARD16 green B16;
CARD16 blue B16;
CARD16 pad B16;
} pexRgb16Color;
typedef struct {
pexTableIndex index B16;
CARD16 pad B16;
} pexIndexedColor;
typedef struct {
union {
pexIndexedColor indexed;
pexRgb8Color rgb8;
pexRgb16Color rgb16;
pexRgbFloatColor rgbFloat;
pexHsvColor hsvFloat;
pexHlsColor hlsFloat;
pexCieColor cieFloat;
} format;
} pexColor;
typedef struct {
PEXFLOAT first B32;
PEXFLOAT second B32;
PEXFLOAT third B32;
} pexFloatColor;
typedef struct {
pexColorType colorType B16;
CARD16 unused B16;
} pexColorSpecifier;
typedef struct {
pexEnumTypeIndex approxMethod B16;
CARD16 unused B16;
PEXFLOAT tolerance B32;
} pexCurveApproxData;
typedef struct {
INT16 x B16;
INT16 y B16;
PEXFLOAT z B32;
} pexDeviceCoord;
typedef struct {
INT16 x B16;
INT16 y B16;
} pexDeviceCoord2D;
typedef struct {
INT16 xmin B16;
INT16 ymin B16;
INT16 xmax B16;
INT16 ymax B16;
} pexDeviceRect;
typedef struct {
CARD16 elementType B16;
CARD16 length B16;
} pexElementInfo;
typedef struct {
CARD16 whence B16;
CARD16 unused B16;
INT32 offset B32;
} pexElementPos;
typedef struct {
pexElementPos position1;
pexElementPos position2;
} pexElementRange;
typedef struct {
pexStructure structure B32;
CARD32 offset B32;
} pexElementRef;
typedef struct {
PEXFLOAT lowerLeft_x B32;
PEXFLOAT lowerLeft_y B32;
PEXFLOAT upperRight_x B32;
PEXFLOAT upperRight_y B32;
PEXFLOAT concatpoint_x B32;
PEXFLOAT concatpoint_y B32;
} pexExtentInfo;
typedef struct {
pexEnumTypeIndex index B16;
CARD16 descriptor_length B16;
} pexEnumTypeDesc;
typedef struct {
PEXFLOAT point_x B32;
PEXFLOAT point_y B32;
PEXFLOAT point_z B32;
PEXFLOAT vector_x B32;
PEXFLOAT vector_y B32;
PEXFLOAT vector_z B32;
} pexHalfSpace;
typedef struct {
pexNameSet incl B32;
pexNameSet excl B32;
} pexNameSetPair;
typedef struct {
PEXFLOAT point_x B32;
PEXFLOAT point_y B32;
PEXFLOAT vector_x B32;
PEXFLOAT vector_y B32;
} pexHalfSpace2D;
typedef struct {
CARD16 composition B16;
CARD16 unused B16;
pexMatrix matrix;
} pexLocalTransform3DData;
typedef struct {
CARD16 composition B16;
CARD16 unused B16;
pexMatrix3X3 matrix;
} pexLocalTransform2DData;
typedef struct {
PEXFLOAT xmin B32;
PEXFLOAT ymin B32;
PEXFLOAT zmin B32;
PEXFLOAT xmax B32;
PEXFLOAT ymax B32;
PEXFLOAT zmax B32;
} pexNpcSubvolume;
typedef struct {
pexStructure sid B32;
CARD32 offset B32;
CARD32 pickid B32;
} pexPickElementRef;
typedef pexPickElementRef pexPickPath;
typedef struct {
pexTextVAlignment vertical B16;
pexTextHAlignment horizontal B16;
} pexTextAlignmentData;
typedef struct {
pexSwitch visibility;
CARD8 unused;
CARD16 order B16;
pexCoordType type B16;
INT16 approxMethod B16;
PEXFLOAT tolerance B32;
PEXFLOAT tMin B32;
PEXFLOAT tMax B32;
CARD32 numKnots B32;
CARD32 numCoord B32;
} pexTrimCurve;
typedef struct {
CARD8 depth;
CARD8 unused;
CARD16 type B16;
CARD32 visualID B32;
} pexRendererTarget;
typedef struct {
pexEnumTypeIndex pickType B16;
CARD16 unused B16;
} pexPickRecord;
typedef struct {
PEXFLOAT ambient B32;
PEXFLOAT diffuse B32;
PEXFLOAT specular B32;
PEXFLOAT specularConc B32;
PEXFLOAT transmission B32;
pexColorType specular_colorType B16;
CARD16 unused B16;
} pexReflectionAttr;
typedef struct {
pexEnumTypeIndex approxMethod B16;
CARD16 unused B16;
PEXFLOAT uTolerance B32;
PEXFLOAT vTolerance B32;
} pexSurfaceApproxData;
typedef struct {
PEXFLOAT point_x B32;
PEXFLOAT point_y B32;
PEXFLOAT point_z B32;
} pexVertex;
typedef struct {
INT16 xmin B16;
INT16 ymin B16;
PEXFLOAT zmin B32;
INT16 xmax B16;
INT16 ymax B16;
PEXFLOAT zmax B32;
pexSwitch useDrawable;
BYTE pad[3];
} pexViewport;
typedef struct {
CARD16 clipFlags B16;
CARD16 unused B16;
PEXFLOAT clipLimits_xmin B32;
PEXFLOAT clipLimits_ymin B32;
PEXFLOAT clipLimits_zmin B32;
PEXFLOAT clipLimits_xmax B32;
PEXFLOAT clipLimits_ymax B32;
PEXFLOAT clipLimits_zmax B32;
pexMatrix orientation;
pexMatrix mapping;
} pexViewEntry;
typedef struct {
pexTableIndex index B16;
CARD16 unused1 B16;
CARD16 clipFlags B16;
CARD16 unused2 B16;
PEXFLOAT clipLimits_xmin B32;
PEXFLOAT clipLimits_ymin B32;
PEXFLOAT clipLimits_zmin B32;
PEXFLOAT clipLimits_xmax B32;
PEXFLOAT clipLimits_ymax B32;
PEXFLOAT clipLimits_zmax B32;
pexMatrix orientation;
pexMatrix mapping;
} pexViewRep;
typedef struct {
CARD16 definableEntries B16;
CARD16 numPredefined B16;
CARD16 predefinedMin B16;
CARD16 predefinedMax B16;
} pexTableInfo;
typedef struct {
pexEnumTypeIndex lineType B16;
pexEnumTypeIndex polylineInterp B16;
pexEnumTypeIndex curveApprox_method B16;
CARD16 unused1 B16;
PEXFLOAT curveApprox_tolerance B32;
PEXFLOAT lineWidth B32;
pexColorType lineColorType B16;
CARD16 unused2 B16;
} pexLineBundleEntry;
typedef struct {
pexEnumTypeIndex markerType B16;
INT16 unused1 B16;
PEXFLOAT markerScale B32;
pexColorType markerColorType B16;
CARD16 unused2 B16;
} pexMarkerBundleEntry;
typedef struct {
CARD16 textFontIndex B16;
CARD16 textPrecision B16;
PEXFLOAT charExpansion B32;
PEXFLOAT charSpacing B32;
pexColorType textColorType B16;
CARD16 unused B16;
} pexTextBundleEntry;
typedef struct {
pexEnumTypeIndex interiorStyle B16;
INT16 interiorStyleIndex B16;
pexEnumTypeIndex reflectionModel B16;
pexEnumTypeIndex surfaceInterp B16;
pexEnumTypeIndex bfInteriorStyle B16;
INT16 bfInteriorStyleIndex B16;
pexEnumTypeIndex bfReflectionModel B16;
pexEnumTypeIndex bfSurfaceInterp B16;
pexEnumTypeIndex surfaceApprox_method B16;
CARD16 unused B16;
PEXFLOAT surfaceApproxuTolerance B32;
PEXFLOAT surfaceApproxvTolerance B32;
} pexInteriorBundleEntry;
typedef struct {
pexSwitch edges;
CARD8 unused1;
pexEnumTypeIndex edgeType B16;
PEXFLOAT edgeWidth B32;
pexColorType edgeColorType B16;
CARD16 unused2 B16;
} pexEdgeBundleEntry;
typedef struct {
pexColorType colorType B16;
CARD16 numx B16;
CARD16 numy B16;
CARD16 unused B16;
} pexPatternEntry;
typedef struct {
CARD32 numFonts B32;
} pexTextFontEntry;
typedef struct {
pexEnumTypeIndex lightType B16;
INT16 unused1 B16;
PEXFLOAT direction_x B32;
PEXFLOAT direction_y B32;
PEXFLOAT direction_z B32;
PEXFLOAT point_x B32;
PEXFLOAT point_y B32;
PEXFLOAT point_z B32;
PEXFLOAT concentration B32;
PEXFLOAT spreadAngle B32;
PEXFLOAT attenuation1 B32;
PEXFLOAT attenuation2 B32;
pexColorType lightColorType B16;
CARD16 unused2 B16;
} pexLightEntry;
typedef struct {
pexSwitch mode;
CARD8 unused1;
CARD16 unused2 B16;
PEXFLOAT frontPlane B32;
PEXFLOAT backPlane B32;
PEXFLOAT frontScaling B32;
PEXFLOAT backScaling B32;
pexColorType depthCueColorType B16;
CARD16 unused3 B16;
} pexDepthCueEntry;
typedef struct {
INT16 approxType B16;
INT16 approxModel B16;
CARD16 max1 B16;
CARD16 max2 B16;
CARD16 max3 B16;
CARD8 dither;
CARD8 unused;
CARD32 mult1 B32;
CARD32 mult2 B32;
CARD32 mult3 B32;
PEXFLOAT weight1 B32;
PEXFLOAT weight2 B32;
PEXFLOAT weight3 B32;
CARD32 basePixel B32;
} pexColorApproxEntry;
typedef struct {
Atom name B32;
CARD32 value B32;
} pexFontProp;
typedef struct {
CARD32 firstGlyph B32;
CARD32 lastGlyph B32;
CARD32 defaultGlyph B32;
pexSwitch allExist;
pexSwitch strokeFont;
CARD16 unused B16;
CARD32 numProps B32;
} pexFontInfo;
typedef struct {
INT16 characterSet B16;
CARD8 characterSetWidth;
CARD8 encodingState;
CARD16 unused B16;
CARD16 numChars B16;
} pexMonoEncoding;
typedef struct {
CARD16 placementType B16;
CARD16 unused B16;
CARD16 numUcurves B16;
CARD16 numVcurves B16;
} pexPSC_IsoparametricCurves;
typedef struct {
PEXFLOAT origin_x B32;
PEXFLOAT origin_y B32;
PEXFLOAT origin_z B32;
PEXFLOAT direction_x B32;
PEXFLOAT direction_y B32;
PEXFLOAT direction_z B32;
CARD16 numberIntersections B16;
CARD16 pad B16;
} pexPSC_LevelCurves;
typedef struct {
INT16 position_x B16;
INT16 position_y B16;
PEXFLOAT distance B32;
} pexPD_DC_HitBox;
typedef pexNpcSubvolume pexPD_NPC_HitVolume;
typedef struct {
CARD8 type;
CARD8 errorCode;
CARD16 sequenceNumber B16;
CARD32 resourceId B32;
CARD16 minorCode B16;
CARD8 majorCode;
CARD8 unused;
CARD16 opcode B16;
CARD16 numCommands B16;
BYTE pad[16];
} pexOutputCommandError;
typedef struct {
INT16 fpFormat B16;
CARD8 unused[2];
CARD32 rdr B32;
} pexEscapeSetEchoColorData;
#endif