]> git.sesse.net Git - rdpsrv/blobdiff - Xserver/include/extensions/XIEprotost.h
Import X server from vnc-3.3.7.
[rdpsrv] / Xserver / include / extensions / XIEprotost.h
diff --git a/Xserver/include/extensions/XIEprotost.h b/Xserver/include/extensions/XIEprotost.h
new file mode 100644 (file)
index 0000000..2298afe
--- /dev/null
@@ -0,0 +1,1118 @@
+/* $XConsortium: XIEprotost.h,v 1.6 94/04/17 20:11:12 mor Exp $ */
+/******************************************************************************
+
+
+Copyright (c) 1993, 1994  X Consortium
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the X Consortium shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from the X Consortium.
+
+
+                               NOTICE
+                              
+This software is being provided by AGE Logic, Inc. under the
+following license.  By obtaining, using and/or copying this software,
+you agree that you have read, understood, and will comply with these
+terms and conditions:
+
+     Permission to use, copy, modify, distribute and sell this
+     software and its documentation for any purpose and without
+     fee or royalty and to grant others any or all rights granted
+     herein is hereby granted, provided that you agree to comply
+     with the following copyright notice and statements, including
+     the disclaimer, and that the same appears on all copies and
+     derivative works of the software and documentation you make.
+     
+     "Copyright 1993, 1994 by AGE Logic, Inc."
+     
+     THIS SOFTWARE IS PROVIDED "AS IS".  AGE LOGIC MAKES NO
+     REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED.  By way of
+     example, but not limitation, AGE LOGIC MAKE NO
+     REPRESENTATIONS OR WARRANTIES OF MERCHANTABILITY OR FITNESS
+     FOR ANY PARTICULAR PURPOSE OR THAT THE SOFTWARE DOES NOT
+     INFRINGE THIRD-PARTY PROPRIETARY RIGHTS.  AGE LOGIC 
+     SHALL BEAR NO LIABILITY FOR ANY USE OF THIS SOFTWARE.  IN NO
+     EVENT SHALL EITHER PARTY BE LIABLE FOR ANY INDIRECT,
+     INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOSS
+     OF PROFITS, REVENUE, DATA OR USE, INCURRED BY EITHER PARTY OR
+     ANY THIRD PARTY, WHETHER IN AN ACTION IN CONTRACT OR TORT OR
+     BASED ON A WARRANTY, EVEN IF AGE LOGIC LICENSEES
+     HEREUNDER HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH
+     DAMAGES.
+    
+     The name of AGE Logic, Inc. may not be used in
+     advertising or publicity pertaining to this software without
+     specific, written prior permission from AGE Logic.
+
+     Title to this software shall at all times remain with AGE
+     Logic, Inc.
+
+
+******************************************************************************/
+
+#ifndef _XIEPROTOST_H_
+#define _XIEPROTOST_H_
+
+#include <X11/Xmd.h>                   /* defines things like CARD32 */
+
+#define Drawable CARD32
+#define Colormap CARD32
+#define GContext CARD32
+
+typedef CARD32 xieTypFloat;
+
+#ifndef WORD64
+
+typedef xieTypFloat    xieTypConstant[3];
+
+typedef xieTypFloat    xieTypMatrix[9];
+
+#else /* WORD64 */
+
+typedef CARD8  xieTypConstant[12];
+
+typedef CARD8  xieTypMatrix[36];
+
+#endif /* WORD64 */
+
+
+typedef CARD8  xieTypAlignment;
+
+typedef CARD8  xieTypArithmeticOp;
+
+typedef CARD16  xieTypColorAllocTechnique;
+
+typedef        CARD32  xieTypColorList;
+
+typedef CARD8  xieTypCompareOp;
+
+typedef CARD16  xieTypConstrainTechnique;
+
+typedef CARD16  xieTypConvertFromRGBTechnique;
+
+typedef CARD16  xieTypConvertToRGBTechnique;
+
+typedef CARD16  xieTypConvolveTechnique;
+
+typedef CARD8  xieTypDataClass;
+
+typedef CARD8  xieTypDataType;
+
+typedef CARD16  xieTypDecodeTechnique;
+
+typedef CARD16  xieTypDitherTechnique;
+
+typedef CARD16  xieTypEncodeTechnique;
+
+typedef CARD32 xieTypPhotospace;
+
+typedef CARD32 xieTypPhotoflo;
+
+typedef struct {
+  union {
+    struct {
+      xieTypPhotospace nameSpace B32;
+      CARD32           floID B32;
+    } immed;
+    struct {
+      CARD32           nameSpace B32;
+      xieTypPhotoflo   floID B32;
+    } stored;
+  } u;
+} xieTypExecutable;
+
+typedef CARD8  xieTypExportNotify;
+
+typedef CARD8  xieTypExportState;
+
+typedef CARD16 xieTypGamutTechnique;
+
+typedef CARD16 xieTypGeometryTechnique;
+
+typedef struct {
+    CARD32     value B32;
+    CARD32     count B32;
+} xieTypHistogramData;
+
+typedef CARD16 xieTypHistogramShape;
+
+typedef CARD8  xieTypInterleave;
+
+typedef CARD32 xieTypLevels[3];
+
+typedef        CARD32  xieTypLUT;
+
+typedef CARD8  xieTypMathOp;
+
+typedef CARD8  xieTypOrientation;
+
+typedef CARD8  xieTypPhotofloOutcome;
+
+typedef CARD8  xieTypPhotofloState;
+
+typedef CARD32 xieTypPhotomap;
+
+typedef CARD16 xieTypPhototag;
+
+typedef struct {
+    INT32              offsetX B32;
+    INT32              offsetY B32;
+    xieTypPhototag     domain B16;             
+} xieTypProcessDomain;
+
+typedef struct {
+    INT32      x B32;
+    INT32      y B32;
+    CARD32     width B32;
+    CARD32     height B32;
+} xieTypRectangle;
+
+typedef CARD32 xieTypROI;
+
+typedef CARD8  xieTypServiceClass;
+
+typedef CARD8  xieTypTechniqueGroup;
+
+typedef struct {
+    BOOL                       needsParam;
+    xieTypTechniqueGroup       group;
+    CARD16                     number B16;
+    CARD8                      speed;
+    CARD8                      nameLength;
+    CARD16                     pad B16;
+    /* LISTofCARD8 (nameLength) */
+    /* pad (nameLength) */
+} xieTypTechniqueRec;
+
+typedef struct {
+    xieTypPhototag     src B16;
+    CARD16             pad B16;
+    INT32              dstX B32;
+    INT32              dstY B32;
+} xieTypTile;
+
+typedef CARD8  xieTypTripleofCARD8[3];
+
+typedef CARD16  xieTypTripleofCARD16[3];
+
+typedef CARD32 xieTypTripleofCARD32[3];
+
+typedef CARD16  xieTypWhiteAdjustTechnique;
+
+
+/*
+ * Generic Element
+ */
+
+typedef struct {
+    CARD16             elemType B16;
+    CARD16             elemLength B16;
+} xieFlo;
+
+/*
+ * Import Elements
+ */
+typedef struct {
+    CARD16             elemType B16;
+    CARD16             elemLength B16;
+    xieTypDataClass    class;
+    xieTypOrientation  bandOrder;
+    CARD16             pad B16;
+    CARD32             length0 B32;
+    CARD32             length1 B32;
+    CARD32             length2 B32;
+    CARD32             levels0 B32;
+    CARD32             levels1 B32;
+    CARD32             levels2 B32;
+} xieFloImportClientLUT;
+
+typedef struct {
+    CARD16                     elemType B16;
+    CARD16                     elemLength B16;
+    BOOL                       notify;
+    xieTypDataClass            class;
+    CARD16                     pad B16;
+    CARD32                     width0 B32;
+    CARD32                     width1 B32;
+    CARD32                     width2 B32;
+    CARD32                     height0 B32;
+    CARD32                     height1 B32;
+    CARD32                     height2 B32;
+    CARD32                     levels0 B32;
+    CARD32                     levels1 B32;
+    CARD32                     levels2 B32;
+    xieTypDecodeTechnique      decodeTechnique B16;
+    CARD16                     lenParams B16;
+    /* Technique dependent decode params */
+} xieFloImportClientPhoto;
+
+typedef struct {
+    CARD16     elemType B16;
+    CARD16     elemLength B16;
+    CARD32     rectangles B32;
+} xieFloImportClientROI;
+
+typedef struct {
+    CARD16     elemType B16;
+    CARD16     elemLength B16;
+    Drawable   drawable B32;
+    INT16      srcX B16;
+    INT16      srcY B16;
+    CARD16     width B16;
+    CARD16     height B16;
+    CARD32     fill B32;
+    BOOL       notify;
+    CARD8      pad[3];         
+} xieFloImportDrawable;
+
+typedef struct {
+    CARD16     elemType B16;
+    CARD16     elemLength B16;
+    Drawable   drawable B32;
+    INT16      srcX B16;
+    INT16      srcY B16;
+    CARD16     width B16;
+    CARD16     height B16;
+    CARD32     fill B32;
+    CARD32     bitPlane B32;
+    BOOL       notify;
+    CARD8      pad[3];         
+} xieFloImportDrawablePlane;
+
+typedef struct {
+    CARD16     elemType B16;
+    CARD16     elemLength B16;
+    xieTypLUT  lut B32;
+} xieFloImportLUT;
+typedef struct {
+    CARD16             elemType B16;
+    CARD16             elemLength B16;
+    xieTypPhotomap     photomap B32;
+    BOOL               notify;
+    CARD8              pad[3];
+} xieFloImportPhotomap;
+
+typedef struct {
+    CARD16     elemType B16;
+    CARD16     elemLength B16;
+    xieTypROI  roi B32;
+} xieFloImportROI;
+
+
+/*
+ * Process Elements
+ */
+typedef struct {
+    CARD16             elemType B16;
+    CARD16             elemLength B16;
+    xieTypPhototag     src1 B16;
+    xieTypPhototag     src2 B16;
+    INT32              domainOffsetX B32;
+    INT32              domainOffsetY B32;
+    xieTypPhototag     domainPhototag B16;             
+    xieTypArithmeticOp operator;
+    CARD8              bandMask;
+    xieTypFloat                constant0 B32;
+    xieTypFloat                constant1 B32;
+    xieTypFloat                constant2 B32;
+} xieFloArithmetic;
+
+typedef struct {
+    CARD16             elemType B16;
+    CARD16             elemLength B16;
+    xieTypPhototag     src1 B16;
+    xieTypPhototag     src2 B16;
+    xieTypPhototag     src3 B16;
+    CARD16             pad B16;
+} xieFloBandCombine;
+
+typedef struct {
+    CARD16             elemType B16;
+    CARD16             elemLength B16;
+    xieTypPhototag     src B16;
+    CARD16             pad B16;
+    CARD32             levels B32;
+    xieTypFloat                bias B32;
+    xieTypFloat                constant0 B32;
+    xieTypFloat                constant1 B32;
+    xieTypFloat                constant2 B32;
+} xieFloBandExtract;
+
+typedef struct {
+    CARD16             elemType B16;
+    CARD16             elemLength B16;
+    xieTypPhototag     src B16;
+    CARD8              bandNumber;
+    CARD8              pad;
+} xieFloBandSelect;
+
+typedef struct {
+    CARD16             elemType B16;
+    CARD16             elemLength B16;
+    xieTypPhototag     src1 B16;
+    xieTypPhototag     src2 B16;
+    xieTypPhototag     alpha B16;
+    CARD16             pad1 B16;
+    INT32              domainOffsetX B32;
+    INT32              domainOffsetY B32;
+    xieTypPhototag     domainPhototag B16;             
+    CARD8              bandMask;
+    CARD8              pad2;
+    xieTypFloat                constant0 B32;
+    xieTypFloat                constant1 B32;
+    xieTypFloat                constant2 B32;
+    xieTypFloat                alphaConst B32;
+} xieFloBlend;
+
+typedef struct {
+    CARD16             elemType B16;
+    CARD16             elemLength B16;
+    xieTypPhototag     src1 B16;
+    xieTypPhototag     src2 B16;
+    INT32              domainOffsetX B32;
+    INT32              domainOffsetY B32;
+    xieTypPhototag     domainPhototag B16;             
+    xieTypCompareOp    operator;
+    BOOL               combine;
+    xieTypFloat                constant0 B32;
+    xieTypFloat                constant1 B32;
+    xieTypFloat                constant2 B32;
+    CARD8              bandMask;
+    CARD8              pad[3];
+} xieFloCompare;
+
+typedef struct {
+    CARD16                     elemType B16;
+    CARD16                     elemLength B16;
+    xieTypPhototag             src B16;
+    CARD16                     pad B16;
+    CARD32                     levels0 B32;
+    CARD32                     levels1 B32;
+    CARD32                     levels2 B32;
+    xieTypConstrainTechnique   constrain B16;
+    CARD16                     lenParams B16;
+    /* Technique dependent constrain params */
+} xieFloConstrain;
+
+typedef struct {
+    CARD16             elemType B16;
+    CARD16             elemLength B16;
+    xieTypPhototag     src B16;
+    xieTypDataClass    class;
+    CARD8              precision;
+    Colormap           colormap B32;
+} xieFloConvertFromIndex;
+
+typedef struct {
+    CARD16                        elemType B16;
+    CARD16                        elemLength B16;
+    xieTypPhototag                src B16;
+    CARD16                        pad B16;
+    xieTypConvertFromRGBTechnique  convert B16;
+    CARD16                        lenParams B16;
+    /* Technique dependent conversion params */
+} xieFloConvertFromRGB;
+
+typedef struct {
+    CARD16                     elemType B16;
+    CARD16                     elemLength B16;
+    xieTypPhototag             src B16;
+    BOOL                       notify;
+    CARD8                      pad;
+    Colormap                   colormap B32;
+    xieTypColorList            colorList B32;
+    xieTypColorAllocTechnique  colorAlloc B16;
+    CARD16                     lenParams B16;
+    /* Technique dependent color alloc params */
+} xieFloConvertToIndex;
+
+typedef struct {
+    CARD16                     elemType B16;
+    CARD16                     elemLength B16;
+    xieTypPhototag             src B16;
+    CARD16                     pad B16;
+    xieTypConvertToRGBTechnique        convert B16;
+    CARD16                     lenParams B16;
+    /* Technique dependent conversion params */
+} xieFloConvertToRGB;
+
+typedef struct {
+    CARD16                     elemType B16;
+    CARD16                     elemLength B16;
+    xieTypPhototag             src B16;
+    CARD16                     pad B16;
+    INT32                      domainOffsetX B32;
+    INT32                      domainOffsetY B32;
+    xieTypPhototag             domainPhototag B16;             
+    CARD8                      bandMask;
+    CARD8                      kernelSize;
+    xieTypConvolveTechnique    convolve B16;
+    CARD16                     lenParams B16;
+    /* LISTofFloat (kernelSize^2) */
+    /* Technique dependent convolve params */
+} xieFloConvolve;
+
+typedef struct {
+    CARD16                     elemType B16;
+    CARD16                     elemLength B16;
+    xieTypPhototag             src B16;
+    CARD8                      bandMask;
+    CARD8                      pad;
+    CARD32                     levels0 B32;
+    CARD32                     levels1 B32;
+    CARD32                     levels2 B32;
+    xieTypDitherTechnique      dither B16;
+    CARD16                     lenParams B16;
+    /* Technique dependent dither params */
+} xieFloDither;
+
+typedef struct {
+    CARD16                     elemType B16;
+    CARD16                     elemLength B16;
+    xieTypPhototag             src B16;
+    CARD8                      bandMask;
+    CARD8                      pad;
+    CARD32                     width B32;
+    CARD32                     height B32;
+    xieTypFloat                        a B32;
+    xieTypFloat                        b B32;
+    xieTypFloat                        c B32;
+    xieTypFloat                        d B32;
+    xieTypFloat                        tx B32;
+    xieTypFloat                        ty B32;
+    xieTypFloat                        constant0 B32;
+    xieTypFloat                        constant1 B32;
+    xieTypFloat                        constant2 B32;
+    xieTypGeometryTechnique    sample B16;
+    CARD16                     lenParams B16;
+    /* Technique dependent sample params */
+} xieFloGeometry;
+
+typedef struct {
+    CARD16             elemType B16;
+    CARD16             elemLength B16;
+    xieTypPhototag     src1 B16;
+    xieTypPhototag     src2 B16;
+    INT32              domainOffsetX B32;
+    INT32              domainOffsetY B32;
+    xieTypPhototag     domainPhototag B16;             
+    CARD8              operator;
+    CARD8              bandMask;
+    xieTypFloat                constant0 B32;
+    xieTypFloat                constant1 B32;
+    xieTypFloat                constant2 B32;
+} xieFloLogical;
+
+typedef struct {
+    CARD16                     elemType B16;
+    CARD16                     elemLength B16;
+    xieTypPhototag             src B16;
+    CARD16                     pad1 B16;
+    INT32                      domainOffsetX B32;
+    INT32                      domainOffsetY B32;
+    xieTypPhototag             domainPhototag B16;             
+    CARD16                     pad2 B16;
+    xieTypHistogramShape       shape B16;
+    CARD16                     lenParams B16;
+    /* Technique dependent shape params */
+} xieFloMatchHistogram;
+
+typedef struct {
+    CARD16             elemType B16;
+    CARD16             elemLength B16;
+    xieTypPhototag     src B16;
+    CARD16             pad B16;
+    INT32              domainOffsetX B32;
+    INT32              domainOffsetY B32;
+    xieTypPhototag     domainPhototag B16;             
+    xieTypMathOp       operator;
+    CARD8              bandMask;
+} xieFloMath;
+
+typedef struct {
+    CARD16             elemType B16;
+    CARD16             elemLength B16;
+    CARD16             numTiles B16;
+    CARD16             pad B16;
+    CARD32             width B32;
+    CARD32             height B32;
+    xieTypFloat                constant0 B32;
+    xieTypFloat                constant1 B32;
+    xieTypFloat                constant2 B32;
+    /* LISTofTile (numTiles) */
+} xieFloPasteUp;
+
+typedef struct {
+    CARD16             elemType B16;
+    CARD16             elemLength B16;
+    xieTypPhototag     src B16;
+    xieTypPhototag     lut B16;
+    INT32              domainOffsetX B32;
+    INT32              domainOffsetY B32;
+    xieTypPhototag     domainPhototag B16;             
+    CARD8              bandMask;
+    CARD8              pad;
+} xieFloPoint;
+
+typedef struct {
+    CARD16                     elemType B16;
+    CARD16                     elemLength B16;
+    xieTypPhototag             src B16;
+    CARD16                     pad B16;
+} xieFloUnconstrain;
+
+
+/*
+ * Export Elements
+ */
+typedef struct {
+    CARD16             elemType B16;
+    CARD16             elemLength B16;
+    xieTypPhototag     src B16;
+    xieTypExportNotify notify;
+    CARD8              pad1;
+    INT32              domainOffsetX B32;
+    INT32              domainOffsetY B32;
+    xieTypPhototag     domainPhototag B16;             
+    CARD16             pad2 B16;
+} xieFloExportClientHistogram;
+
+typedef struct {
+    CARD16             elemType B16;
+    CARD16             elemLength B16;
+    xieTypPhototag     src B16;
+    xieTypExportNotify notify;
+    xieTypOrientation  bandOrder;
+    CARD32             start0  B32;
+    CARD32             start1  B32;
+    CARD32             start2  B32;
+    CARD32             length0 B32;
+    CARD32             length1 B32;
+    CARD32             length2 B32;
+} xieFloExportClientLUT;
+
+typedef struct {
+    CARD16                     elemType B16;
+    CARD16                     elemLength B16;
+    xieTypPhototag             src B16;
+    xieTypExportNotify         notify;
+    CARD8                      pad;
+    xieTypEncodeTechnique      encodeTechnique B16;
+    CARD16                     lenParams B16;
+    /* Technique dependent encode params */
+} xieFloExportClientPhoto;
+
+typedef struct {
+    CARD16             elemType B16;
+    CARD16             elemLength B16;
+    xieTypPhototag     src B16;
+    xieTypExportNotify notify;
+    CARD8              pad;
+} xieFloExportClientROI;
+
+typedef struct {
+    CARD16             elemType B16;
+    CARD16             elemLength B16;
+    xieTypPhototag     src B16;
+    INT16              dstX B16;
+    INT16              dstY B16;
+    CARD16             pad B16;
+    Drawable           drawable B32;
+    GContext           gc B32;
+} xieFloExportDrawable;
+
+typedef struct {
+    CARD16             elemType B16;
+    CARD16             elemLength B16;
+    xieTypPhototag     src B16;
+    INT16              dstX B16;
+    INT16              dstY B16;
+    CARD16             pad B16;
+    Drawable           drawable B32;
+    GContext           gc B32;
+} xieFloExportDrawablePlane;
+
+typedef struct {
+    CARD16             elemType B16;
+    CARD16             elemLength B16;
+    xieTypPhototag     src B16;
+    CARD8              merge;
+    CARD8              pad;
+    xieTypLUT          lut B32;
+    CARD32             start0 B32;
+    CARD32             start1 B32;
+    CARD32             start2 B32;
+} xieFloExportLUT;
+typedef struct {
+    CARD16                     elemType B16;
+    CARD16                     elemLength B16;
+    xieTypPhototag             src B16;
+    CARD16                     pad B16;
+    xieTypPhotomap             photomap B32;
+    xieTypEncodeTechnique      encodeTechnique B16;
+    CARD16                     lenParams B16;
+    /* Technique dependent encode params */
+} xieFloExportPhotomap;
+
+typedef struct {
+    CARD16             elemType B16;
+    CARD16             elemLength B16;
+    xieTypPhototag     src B16;
+    CARD16             pad B16;
+    xieTypROI          roi B32;
+} xieFloExportROI;
+
+
+/*
+ * Technique Parameters
+ */
+
+typedef struct {
+    xieTypFloat                inputLow0   B32;
+    xieTypFloat                inputLow1   B32;
+    xieTypFloat                inputLow2   B32;
+    xieTypFloat                inputHigh0  B32;
+    xieTypFloat                inputHigh1  B32;
+    xieTypFloat                inputHigh2  B32;
+    CARD32             outputLow0  B32;
+    CARD32             outputLow1  B32;
+    CARD32             outputLow2  B32;
+    CARD32             outputHigh0 B32;
+    CARD32             outputHigh1 B32;
+    CARD32             outputHigh2 B32;
+} xieTecClipScale;
+
+typedef struct {
+    CARD32             fill B32;
+} xieTecColorAllocAll;
+
+typedef struct {
+    xieTypFloat                matchLimit B32;
+    xieTypFloat                grayLimit B32;
+} xieTecColorAllocMatch;
+
+typedef struct {
+    CARD32             maxCells B32;
+} xieTecColorAllocRequantize;
+
+typedef struct {
+    xieTypFloat                        matrix00 B32;
+    xieTypFloat                        matrix01 B32;
+    xieTypFloat                        matrix02 B32;
+    xieTypFloat                        matrix10 B32;
+    xieTypFloat                        matrix11 B32;
+    xieTypFloat                        matrix12 B32;
+    xieTypFloat                        matrix20 B32;
+    xieTypFloat                        matrix21 B32;
+    xieTypFloat                        matrix22 B32;
+    xieTypWhiteAdjustTechnique whiteAdjusted B16;
+    CARD16                     lenParams B16;
+    /* Technique dependent white params */
+} xieTecRGBToCIELab, xieTecRGBToCIEXYZ;
+
+typedef struct {
+    CARD32             levels0 B32;
+    CARD32             levels1 B32;
+    CARD32             levels2 B32;
+    xieTypFloat                lumaRed B32;
+    xieTypFloat                lumaGreen B32;
+    xieTypFloat                lumaBlue B32;
+    xieTypFloat                bias0 B32;
+    xieTypFloat                bias1 B32;
+    xieTypFloat                bias2 B32;
+} xieTecRGBToYCbCr;
+
+typedef struct {
+    CARD32             levels0 B32;
+    CARD32             levels1 B32;
+    CARD32             levels2 B32;
+    xieTypFloat                lumaRed B32;
+    xieTypFloat                lumaGreen B32;
+    xieTypFloat                lumaBlue B32;
+    xieTypFloat                scale B32;
+} xieTecRGBToYCC;
+
+typedef struct {
+    xieTypFloat                        matrix00 B32;
+    xieTypFloat                        matrix01 B32;
+    xieTypFloat                        matrix02 B32;
+    xieTypFloat                        matrix10 B32;
+    xieTypFloat                        matrix11 B32;
+    xieTypFloat                        matrix12 B32;
+    xieTypFloat                        matrix20 B32;
+    xieTypFloat                        matrix21 B32;
+    xieTypFloat                        matrix22 B32;
+    xieTypWhiteAdjustTechnique whiteAdjusted B16;
+    CARD16                     lenWhiteParams B16;
+    xieTypGamutTechnique       gamutCompress B16;
+    CARD16                     lenGamutParams B16;
+    /* Technique dependent white params */
+    /* Technique dependent gamut params */
+} xieTecCIELabToRGB, xieTecCIEXYZToRGB;
+
+typedef struct {
+    CARD32                     levels0 B32;
+    CARD32                     levels1 B32;
+    CARD32                     levels2 B32;
+    xieTypFloat                        lumaRed B32;
+    xieTypFloat                        lumaGreen B32;
+    xieTypFloat                        lumaBlue B32;
+    xieTypFloat                        bias0 B32;
+    xieTypFloat                        bias1 B32;
+    xieTypFloat                        bias2 B32;
+    xieTypGamutTechnique       gamutCompress B16;
+    CARD16                     lenGamutParams B16;
+    /* Technique dependent gamut params */
+} xieTecYCbCrToRGB;
+
+typedef struct {
+    CARD32                     levels0 B32;
+    CARD32                     levels1 B32;
+    CARD32                     levels2 B32;
+    xieTypFloat                        lumaRed B32;
+    xieTypFloat                        lumaGreen B32;
+    xieTypFloat                        lumaBlue B32;
+    xieTypFloat                        scale B32;
+    xieTypGamutTechnique       gamutCompress B16;
+    CARD16                     lenGamutParams B16;
+    /* Technique dependent gamut params */
+} xieTecYCCToRGB;
+
+typedef struct {
+    xieTypFloat                constant0 B32;
+    xieTypFloat                constant1 B32;
+    xieTypFloat                constant2 B32;
+} xieTecConvolveConstant;
+
+typedef struct {
+    xieTypOrientation  fillOrder;
+    xieTypOrientation  pixelOrder;
+    CARD8              pixelStride;
+    CARD8              leftPad;
+    CARD8              scanlinePad;
+    CARD8              pad[3];
+} xieTecDecodeUncompressedSingle;
+
+typedef struct {
+    CARD8              leftPad[3];
+    xieTypOrientation  fillOrder;
+    CARD8              pixelStride[3];
+    xieTypOrientation  pixelOrder;
+    CARD8              scanlinePad[3];
+    xieTypOrientation  bandOrder;
+    xieTypInterleave   interleave;
+    CARD8              pad[3];
+} xieTecDecodeUncompressedTriple;
+
+typedef struct {
+    xieTypOrientation  encodedOrder;
+    BOOL               normal;
+    BOOL               radiometric;
+    CARD8              pad;
+} xieTecDecodeG31D, xieTecDecodeG32D, xieTecDecodeG42D,
+  xieTecDecodeTIFF2;
+
+typedef struct {
+    xieTypOrientation  encodedOrder;
+    BOOL               normal;
+    CARD16             pad B16;
+} xieTecDecodeTIFFPackBits;
+
+typedef struct {
+    xieTypInterleave   interleave;
+    xieTypOrientation  bandOrder;
+    BOOL               upSample;
+    CARD8              pad;
+} xieTecDecodeJPEGBaseline;
+
+typedef struct {
+    xieTypInterleave   interleave;
+    xieTypOrientation  bandOrder;
+    CARD16             pad B16;
+} xieTecDecodeJPEGLossless;
+
+typedef struct {
+    CARD8      thresholdOrder;
+    CARD8      pad[3];
+} xieTecDitherOrdered;
+
+typedef struct {
+    CARD8              preference;
+    CARD8              pad[3];
+} xieTecEncodeServerChoice;
+
+typedef struct {
+    xieTypOrientation  fillOrder;
+    xieTypOrientation  pixelOrder;
+    CARD8              pixelStride;
+    CARD8              scanlinePad;
+} xieTecEncodeUncompressedSingle;
+
+typedef struct {
+    CARD8              pixelStride[3];
+    xieTypOrientation  pixelOrder;
+    CARD8              scanlinePad[3];
+    xieTypOrientation  fillOrder;
+    xieTypOrientation  bandOrder;
+    xieTypInterleave   interleave;
+    CARD16             pad B16;
+} xieTecEncodeUncompressedTriple;
+
+typedef struct {
+    xieTypOrientation  encodedOrder;
+    BOOL               alignEol;
+    BOOL               radiometric;
+    CARD8              pad;
+} xieTecEncodeG31D;
+
+typedef struct {
+    xieTypOrientation  encodedOrder;
+    BOOL               alignEol;
+    BOOL               radiometric;
+    BOOL               uncompressed;
+    CARD32             kFactor B32;
+} xieTecEncodeG32D;
+
+typedef struct {
+    xieTypOrientation  encodedOrder;
+    BOOL               radiometric;
+    BOOL               uncompressed;
+    CARD8              pad;
+} xieTecEncodeG42D;
+
+typedef struct {
+    xieTypInterleave   interleave;
+    xieTypOrientation  bandOrder;
+    CARD8              horizontalSamples[3];
+    CARD8              verticalSamples[3];
+    CARD16             lenQtable  B16; /* multiple of 4 */
+    CARD16             lenACtable B16; /* multiple of 4 */
+    CARD16             lenDCtable B16; /* multiple of 4 */
+    CARD16             pad B16;
+    /* LISTofCARD8 (Qtable)  */
+    /* LISTofCARD8 (ACtable) */
+    /* LISTofCARD8 (DCtable) */
+} xieTecEncodeJPEGBaseline;
+
+typedef struct {
+    xieTypInterleave   interleave;
+    xieTypOrientation  bandOrder;
+    CARD16             lenTable B16;   /* multiple of 4 */
+    CARD8              predictor[3];
+    CARD8              pad;
+    /* LISTofCARD8 (table) */
+} xieTecEncodeJPEGLossless;
+
+typedef struct {
+    xieTypOrientation  encodedOrder;
+    BOOL               radiometric;
+    CARD16             pad B16;
+} xieTecEncodeTIFF2;
+
+typedef struct {
+    xieTypOrientation  encodedOrder;
+    CARD8              pad[3];
+} xieTecEncodeTIFFPackBits;
+
+typedef struct {
+    INT16      simple B16;
+    CARD16     pad B16;
+} xieTecGeomAntialiasByArea;
+
+typedef struct {
+    INT16      kernelSize B16;
+    CARD16     pad B16;
+} xieTecGeomAntialiasByLowpass;
+
+typedef struct {
+    CARD8      radius;
+    BOOL       simple;
+    CARD16     pad B16;
+    xieTypFloat        sigma B32;
+    xieTypFloat        normalize B32;
+} xieTecGeomGaussian;
+
+typedef struct {
+    CARD8      modify;
+    CARD8      pad[3];
+} xieTecGeomNearestNeighbor;
+
+typedef struct {
+    xieTypFloat                mean B32;
+    xieTypFloat                sigma B32;
+} xieTecHistogramGaussian;
+
+typedef struct {
+    BOOL               shapeFactor;
+    CARD8              pad[3];
+    xieTypFloat                constant B32;
+} xieTecHistogramHyperbolic;
+
+typedef struct {
+    xieTypFloat                whitePoint0 B32;
+    xieTypFloat                whitePoint1 B32;
+    xieTypFloat                whitePoint2 B32;
+} xieTecWhiteAdjustCIELabShift;
+
+
+/*
+ * SIZEOF values
+ */
+#define sz_xieTypAlignment                     1
+#define sz_xieTypArithmeticOp                  1
+#define sz_xieTypColorAllocTechnique           2
+#define sz_xieTypColorList                     4
+#define sz_xieTypCompareOp                     1
+#define sz_xieTypConstant                      12
+#define sz_xieTypConstrainTechnique            2
+#define sz_xieTypConvertFromRGBTechnique       2
+#define sz_xieTypConvertToRGBTechnique         2
+#define sz_xieTypConvolveTechnique             2
+#define sz_xieTypDataClass                     1
+#define sz_xieTypDataType                      1
+#define sz_xieTypDecodeTechnique               2
+#define sz_xieTypDitherTechnique               2
+#define sz_xieTypEncodeTechnique               2
+#define sz_xieTypPhotospace                    4
+#define sz_xieTypPhotoflo                      4
+#define sz_xieTypExecutable                    8
+#define sz_xieTypExportNotify                  1
+#define sz_xieTypExportState                   1
+#define sz_xieTypFloat                         4
+#define sz_xieTypGamutTechnique                        2
+#define sz_xieTypGeometryTechnique             2
+#define sz_xieTypHistogramData                 8
+#define sz_xieTypHistogramShape                        2
+#define sz_xieTypInterleave                    1
+#define sz_xieTypLevels                                12
+#define sz_xieTypLUT                           4
+#define sz_xieTypMathOp                                1
+#define sz_xieTypMatrix                                36
+#define sz_xieTypOrientation                   1
+#define sz_xieTypPhotofloOutcome               1
+#define sz_xieTypPhotofloState                 1
+#define sz_xieTypPhotomap                      4
+#define sz_xieTypPhototag                      2
+#define sz_xieTypProcessDomain                 12
+#define sz_xieTypRectangle                     16
+#define sz_xieTypROI                           4
+#define sz_xieTypServiceClass                  1
+#define sz_xieTypTechniqueGroup                        1
+#define sz_xieTypTechniqueRec                  8
+#define sz_xieTypTile                          12
+#define sz_xieTypTripleofCARD8                 3
+#define sz_xieTypTripleofCARD16                        6
+#define sz_xieTypTripleofCARD32                        12
+#define sz_xieTypWhiteAdjustTechnique          2
+#define sz_xieFloImportClientLUT               32
+#define sz_xieFloImportClientPhoto             48
+#define sz_xieFloImportClientROI               8
+#define sz_xieFloImportDrawable                        24
+#define sz_xieFloImportDrawablePlane           28
+#define sz_xieFloImportLUT                     8
+#define sz_xieFloImportPhotomap                        12
+#define sz_xieFloImportROI                     8
+#define sz_xieFloArithmetic                    32
+#define sz_xieFloBandCombine                   12
+#define sz_xieFloBandExtract                   28
+#define sz_xieFloBandSelect                    8
+#define sz_xieFloBlend                         40
+#define sz_xieFloCompare                       36
+#define sz_xieFloConstrain                     24
+#define sz_xieFloConvertFromIndex              12
+#define sz_xieFloConvertFromRGB                        12
+#define sz_xieFloConvertToIndex                        20
+#define sz_xieFloConvertToRGB                  12
+#define sz_xieFloConvolve                      24
+#define sz_xieFloDither                                24
+#define sz_xieFloGeometry                      56
+#define sz_xieFloLogical                       32
+#define sz_xieFloMatchHistogram                        24
+#define sz_xieFloMath                          20
+#define sz_xieFloPasteUp                       28
+#define sz_xieFloPoint                         20
+#define sz_xieFloUnconstrain                   8
+#define sz_xieFloExportClientHistogram         20
+#define sz_xieFloExportClientLUT               32
+#define sz_xieFloExportClientPhoto             12
+#define sz_xieFloExportClientROI               8
+#define sz_xieFloExportDrawable                        20
+#define sz_xieFloExportDrawablePlane           20
+#define sz_xieFloExportLUT                     24
+#define sz_xieFloExportPhotomap                        16
+#define sz_xieFloExportROI                     12
+#define sz_xieTecColorAllocAll                 4
+#define sz_xieTecColorAllocMatch               8
+#define sz_xieTecColorAllocRequantize          4
+#define sz_xieTecClipScale                     48
+#define sz_xieTecHardClip                      0
+#define sz_xieTecRGBToCIELab                   40
+#define sz_xieTecRGBToCIEXYZ                   40
+#define sz_xieTecRGBToYCbCr                    36
+#define sz_xieTecRGBToYCC                      28
+#define sz_xieTecYCbCrToRGB                    40
+#define sz_xieTecYCCToRGB                      32
+#define sz_xieTecCIELabToRGB                   44
+#define sz_xieTecCIEXYZToRGB                   44
+#define sz_xieTecConvolveConstant              12
+#define sz_xieTecConvolveReplicate             0
+#define sz_xieTecDecodeUncompressedSingle      8
+#define sz_xieTecDecodeUncompressedTriple      16
+#define sz_xieTecDecodeG31D                    4
+#define sz_xieTecDecodeG32D                    4
+#define sz_xieTecDecodeG42D                    4
+#define sz_xieTecDecodeTIFF2                   4
+#define sz_xieTecDecodeTIFFPackBits            4
+#define sz_xieTecDecodeJPEGBaseline            4
+#define sz_xieTecDecodeJPEGLossless            4
+#define sz_xieTecDitherOrdered                 4
+#define sz_xieTecDitherErrorDiffusion          4
+#define sz_xieTecEncodeServerChoice            4
+#define sz_xieTecEncodeUncompressedSingle      4
+#define sz_xieTecEncodeUncompressedTriple      12
+#define sz_xieTecEncodeG31D                    4
+#define sz_xieTecEncodeG32D                    8
+#define sz_xieTecEncodeG42D                    4
+#define sz_xieTecEncodeJPEGBaseline            16
+#define sz_xieTecEncodeJPEGLossless            8
+#define sz_xieTecEncodeTIFF2                   4
+#define sz_xieTecEncodeTIFFPackBits            4
+#define sz_xieTecGamutNone                     0
+#define sz_xieTecGamutClipRGB                  0
+#define sz_xieTecGeomAntialias                 0
+#define sz_xieTecGeomAntialiasByArea           4
+#define sz_xieTecGeomAntialiasByLowpass                4
+#define sz_xieTecGeomBilinearInterpolation     0
+#define sz_xieTecGeomGaussian                  12
+#define sz_xieTecGeomNearestNeighbor           4
+#define sz_xieTecHistogramFlat                 0
+#define sz_xieTecHistogramGaussian             8
+#define sz_xieTecHistogramHyperbolic           8
+#define sz_xieTecWhiteAdjustNone               0
+#define sz_xieTecWhiteAdjustCIELabShift                12
+
+#undef Drawable
+#undef Colormap
+#undef GContext
+
+#endif /* _XIEPROTOST_H_ */