home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-bin / x11r6.1 / include / x11 / extensions / xieprotost.h < prev    next >
Encoding:
C/C++ Source or Header  |  1996-10-17  |  28.1 KB  |  1,119 lines

  1. /* $XConsortium: XIEprotost.h,v 1.6 94/04/17 20:11:12 mor Exp $ */
  2. /******************************************************************************
  3.  
  4.  
  5. Copyright (c) 1993, 1994  X Consortium
  6.  
  7. Permission is hereby granted, free of charge, to any person obtaining a copy
  8. of this software and associated documentation files (the "Software"), to deal
  9. in the Software without restriction, including without limitation the rights
  10. to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  11. copies of the Software, and to permit persons to whom the Software is
  12. furnished to do so, subject to the following conditions:
  13.  
  14. The above copyright notice and this permission notice shall be included in
  15. all copies or substantial portions of the Software.
  16.  
  17. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  18. IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  19. FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
  20. X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
  21. AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  22. CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  23.  
  24. Except as contained in this notice, the name of the X Consortium shall not be
  25. used in advertising or otherwise to promote the sale, use or other dealings
  26. in this Software without prior written authorization from the X Consortium.
  27.  
  28.  
  29.                 NOTICE
  30.                               
  31. This software is being provided by AGE Logic, Inc. under the
  32. following license.  By obtaining, using and/or copying this software,
  33. you agree that you have read, understood, and will comply with these
  34. terms and conditions:
  35.  
  36.      Permission to use, copy, modify, distribute and sell this
  37.      software and its documentation for any purpose and without
  38.      fee or royalty and to grant others any or all rights granted
  39.      herein is hereby granted, provided that you agree to comply
  40.      with the following copyright notice and statements, including
  41.      the disclaimer, and that the same appears on all copies and
  42.      derivative works of the software and documentation you make.
  43.      
  44.      "Copyright 1993, 1994 by AGE Logic, Inc."
  45.      
  46.      THIS SOFTWARE IS PROVIDED "AS IS".  AGE LOGIC MAKES NO
  47.      REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED.  By way of
  48.      example, but not limitation, AGE LOGIC MAKE NO
  49.      REPRESENTATIONS OR WARRANTIES OF MERCHANTABILITY OR FITNESS
  50.      FOR ANY PARTICULAR PURPOSE OR THAT THE SOFTWARE DOES NOT
  51.      INFRINGE THIRD-PARTY PROPRIETARY RIGHTS.  AGE LOGIC 
  52.      SHALL BEAR NO LIABILITY FOR ANY USE OF THIS SOFTWARE.  IN NO
  53.      EVENT SHALL EITHER PARTY BE LIABLE FOR ANY INDIRECT,
  54.      INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOSS
  55.      OF PROFITS, REVENUE, DATA OR USE, INCURRED BY EITHER PARTY OR
  56.      ANY THIRD PARTY, WHETHER IN AN ACTION IN CONTRACT OR TORT OR
  57.      BASED ON A WARRANTY, EVEN IF AGE LOGIC LICENSEES
  58.      HEREUNDER HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH
  59.      DAMAGES.
  60.     
  61.      The name of AGE Logic, Inc. may not be used in
  62.      advertising or publicity pertaining to this software without
  63.      specific, written prior permission from AGE Logic.
  64.  
  65.      Title to this software shall at all times remain with AGE
  66.      Logic, Inc.
  67.  
  68.  
  69. ******************************************************************************/
  70.  
  71. #ifndef _XIEPROTOST_H_
  72. #define _XIEPROTOST_H_
  73.  
  74. #include <X11/Xmd.h>            /* defines things like CARD32 */
  75.  
  76. #define Drawable CARD32
  77. #define Colormap CARD32
  78. #define GContext CARD32
  79.  
  80. typedef CARD32    xieTypFloat;
  81.  
  82. #ifndef WORD64
  83.  
  84. typedef xieTypFloat     xieTypConstant[3];
  85.  
  86. typedef xieTypFloat     xieTypMatrix[9];
  87.  
  88. #else /* WORD64 */
  89.  
  90. typedef CARD8    xieTypConstant[12];
  91.  
  92. typedef CARD8    xieTypMatrix[36];
  93.  
  94. #endif /* WORD64 */
  95.  
  96.  
  97. typedef CARD8    xieTypAlignment;
  98.  
  99. typedef CARD8    xieTypArithmeticOp;
  100.  
  101. typedef CARD16  xieTypColorAllocTechnique;
  102.  
  103. typedef    CARD32    xieTypColorList;
  104.  
  105. typedef CARD8    xieTypCompareOp;
  106.  
  107. typedef CARD16  xieTypConstrainTechnique;
  108.  
  109. typedef CARD16  xieTypConvertFromRGBTechnique;
  110.  
  111. typedef CARD16  xieTypConvertToRGBTechnique;
  112.  
  113. typedef CARD16  xieTypConvolveTechnique;
  114.  
  115. typedef CARD8    xieTypDataClass;
  116.  
  117. typedef CARD8    xieTypDataType;
  118.  
  119. typedef CARD16  xieTypDecodeTechnique;
  120.  
  121. typedef CARD16  xieTypDitherTechnique;
  122.  
  123. typedef CARD16  xieTypEncodeTechnique;
  124.  
  125. typedef CARD32    xieTypPhotospace;
  126.  
  127. typedef CARD32    xieTypPhotoflo;
  128.  
  129. typedef struct {
  130.   union {
  131.     struct {
  132.       xieTypPhotospace    nameSpace B32;
  133.       CARD32        floID B32;
  134.     } immed;
  135.     struct {
  136.       CARD32        nameSpace B32;
  137.       xieTypPhotoflo    floID B32;
  138.     } stored;
  139.   } u;
  140. } xieTypExecutable;
  141.  
  142. typedef CARD8    xieTypExportNotify;
  143.  
  144. typedef CARD8    xieTypExportState;
  145.  
  146. typedef CARD16    xieTypGamutTechnique;
  147.  
  148. typedef CARD16    xieTypGeometryTechnique;
  149.  
  150. typedef struct {
  151.     CARD32    value B32;
  152.     CARD32    count B32;
  153. } xieTypHistogramData;
  154.  
  155. typedef CARD16    xieTypHistogramShape;
  156.  
  157. typedef CARD8    xieTypInterleave;
  158.  
  159. typedef CARD32    xieTypLevels[3];
  160.  
  161. typedef    CARD32    xieTypLUT;
  162.  
  163. typedef CARD8    xieTypMathOp;
  164.  
  165. typedef CARD8    xieTypOrientation;
  166.  
  167. typedef CARD8    xieTypPhotofloOutcome;
  168.  
  169. typedef CARD8    xieTypPhotofloState;
  170.  
  171. typedef CARD32    xieTypPhotomap;
  172.  
  173. typedef CARD16    xieTypPhototag;
  174.  
  175. typedef struct {
  176.     INT32        offsetX B32;
  177.     INT32        offsetY B32;
  178.     xieTypPhototag    domain B16;        
  179. } xieTypProcessDomain;
  180.  
  181. typedef struct {
  182.     INT32    x B32;
  183.     INT32    y B32;
  184.     CARD32    width B32;
  185.     CARD32    height B32;
  186. } xieTypRectangle;
  187.  
  188. typedef CARD32    xieTypROI;
  189.  
  190. typedef CARD8    xieTypServiceClass;
  191.  
  192. typedef CARD8    xieTypTechniqueGroup;
  193.  
  194. typedef struct {
  195.     BOOL            needsParam;
  196.     xieTypTechniqueGroup    group;
  197.     CARD16            number B16;
  198.     CARD8            speed;
  199.     CARD8            nameLength;
  200.     CARD16            pad B16;
  201.     /* LISTofCARD8 (nameLength) */
  202.     /* pad (nameLength) */
  203. } xieTypTechniqueRec;
  204.  
  205. typedef struct {
  206.     xieTypPhototag     src B16;
  207.     CARD16        pad B16;
  208.     INT32        dstX B32;
  209.     INT32        dstY B32;
  210. } xieTypTile;
  211.  
  212. typedef CARD8    xieTypTripleofCARD8[3];
  213.  
  214. typedef CARD16  xieTypTripleofCARD16[3];
  215.  
  216. typedef CARD32    xieTypTripleofCARD32[3];
  217.  
  218. typedef CARD16  xieTypWhiteAdjustTechnique;
  219.  
  220.  
  221. /*
  222.  * Generic Element
  223.  */
  224.  
  225. typedef struct {
  226.     CARD16        elemType B16;
  227.     CARD16        elemLength B16;
  228. } xieFlo;
  229.  
  230. /*
  231.  * Import Elements
  232.  */
  233. typedef struct {
  234.     CARD16        elemType B16;
  235.     CARD16        elemLength B16;
  236.     xieTypDataClass    class;
  237.     xieTypOrientation    bandOrder;
  238.     CARD16        pad B16;
  239.     CARD32        length0 B32;
  240.     CARD32        length1 B32;
  241.     CARD32        length2 B32;
  242.     CARD32        levels0 B32;
  243.     CARD32        levels1 B32;
  244.     CARD32        levels2 B32;
  245. } xieFloImportClientLUT;
  246.  
  247. typedef struct {
  248.     CARD16            elemType B16;
  249.     CARD16            elemLength B16;
  250.     BOOL            notify;
  251.     xieTypDataClass         class;
  252.     CARD16            pad B16;
  253.     CARD32            width0 B32;
  254.     CARD32            width1 B32;
  255.     CARD32            width2 B32;
  256.     CARD32            height0 B32;
  257.     CARD32            height1 B32;
  258.     CARD32            height2 B32;
  259.     CARD32            levels0 B32;
  260.     CARD32            levels1 B32;
  261.     CARD32            levels2 B32;
  262.     xieTypDecodeTechnique    decodeTechnique B16;
  263.     CARD16            lenParams B16;
  264.     /* Technique dependent decode params */
  265. } xieFloImportClientPhoto;
  266.  
  267. typedef struct {
  268.     CARD16    elemType B16;
  269.     CARD16    elemLength B16;
  270.     CARD32    rectangles B32;
  271. } xieFloImportClientROI;
  272.  
  273. typedef struct {
  274.     CARD16    elemType B16;
  275.     CARD16    elemLength B16;
  276.     Drawable    drawable B32;
  277.     INT16    srcX B16;
  278.     INT16    srcY B16;
  279.     CARD16    width B16;
  280.     CARD16    height B16;
  281.     CARD32    fill B32;
  282.     BOOL    notify;
  283.     CARD8    pad[3];        
  284. } xieFloImportDrawable;
  285.  
  286. typedef struct {
  287.     CARD16    elemType B16;
  288.     CARD16    elemLength B16;
  289.     Drawable    drawable B32;
  290.     INT16    srcX B16;
  291.     INT16    srcY B16;
  292.     CARD16    width B16;
  293.     CARD16    height B16;
  294.     CARD32    fill B32;
  295.     CARD32    bitPlane B32;
  296.     BOOL    notify;
  297.     CARD8    pad[3];        
  298. } xieFloImportDrawablePlane;
  299.  
  300. typedef struct {
  301.     CARD16    elemType B16;
  302.     CARD16    elemLength B16;
  303.     xieTypLUT    lut B32;
  304. } xieFloImportLUT;
  305.  
  306. typedef struct {
  307.     CARD16        elemType B16;
  308.     CARD16        elemLength B16;
  309.     xieTypPhotomap    photomap B32;
  310.     BOOL        notify;
  311.     CARD8        pad[3];
  312. } xieFloImportPhotomap;
  313.  
  314. typedef struct {
  315.     CARD16    elemType B16;
  316.     CARD16    elemLength B16;
  317.     xieTypROI    roi B32;
  318. } xieFloImportROI;
  319.  
  320.  
  321. /*
  322.  * Process Elements
  323.  */
  324. typedef struct {
  325.     CARD16        elemType B16;
  326.     CARD16        elemLength B16;
  327.     xieTypPhototag    src1 B16;
  328.     xieTypPhototag    src2 B16;
  329.     INT32        domainOffsetX B32;
  330.     INT32        domainOffsetY B32;
  331.     xieTypPhototag    domainPhototag B16;        
  332.     xieTypArithmeticOp    operator;
  333.     CARD8        bandMask;
  334.     xieTypFloat        constant0 B32;
  335.     xieTypFloat        constant1 B32;
  336.     xieTypFloat        constant2 B32;
  337. } xieFloArithmetic;
  338.  
  339. typedef struct {
  340.     CARD16        elemType B16;
  341.     CARD16        elemLength B16;
  342.     xieTypPhototag    src1 B16;
  343.     xieTypPhototag    src2 B16;
  344.     xieTypPhototag    src3 B16;
  345.     CARD16        pad B16;
  346. } xieFloBandCombine;
  347.  
  348. typedef struct {
  349.     CARD16        elemType B16;
  350.     CARD16        elemLength B16;
  351.     xieTypPhototag    src B16;
  352.     CARD16        pad B16;
  353.     CARD32        levels B32;
  354.     xieTypFloat        bias B32;
  355.     xieTypFloat        constant0 B32;
  356.     xieTypFloat        constant1 B32;
  357.     xieTypFloat        constant2 B32;
  358. } xieFloBandExtract;
  359.  
  360. typedef struct {
  361.     CARD16        elemType B16;
  362.     CARD16        elemLength B16;
  363.     xieTypPhototag    src B16;
  364.     CARD8        bandNumber;
  365.     CARD8        pad;
  366. } xieFloBandSelect;
  367.  
  368. typedef struct {
  369.     CARD16        elemType B16;
  370.     CARD16        elemLength B16;
  371.     xieTypPhototag    src1 B16;
  372.     xieTypPhototag    src2 B16;
  373.     xieTypPhototag    alpha B16;
  374.     CARD16        pad1 B16;
  375.     INT32        domainOffsetX B32;
  376.     INT32        domainOffsetY B32;
  377.     xieTypPhototag    domainPhototag B16;        
  378.     CARD8        bandMask;
  379.     CARD8        pad2;
  380.     xieTypFloat        constant0 B32;
  381.     xieTypFloat        constant1 B32;
  382.     xieTypFloat        constant2 B32;
  383.     xieTypFloat        alphaConst B32;
  384. } xieFloBlend;
  385.  
  386. typedef struct {
  387.     CARD16        elemType B16;
  388.     CARD16        elemLength B16;
  389.     xieTypPhototag    src1 B16;
  390.     xieTypPhototag    src2 B16;
  391.     INT32        domainOffsetX B32;
  392.     INT32        domainOffsetY B32;
  393.     xieTypPhototag    domainPhototag B16;        
  394.     xieTypCompareOp    operator;
  395.     BOOL        combine;
  396.     xieTypFloat        constant0 B32;
  397.     xieTypFloat        constant1 B32;
  398.     xieTypFloat        constant2 B32;
  399.     CARD8        bandMask;
  400.     CARD8        pad[3];
  401. } xieFloCompare;
  402.  
  403. typedef struct {
  404.     CARD16            elemType B16;
  405.     CARD16            elemLength B16;
  406.     xieTypPhototag        src B16;
  407.     CARD16            pad B16;
  408.     CARD32            levels0 B32;
  409.     CARD32            levels1 B32;
  410.     CARD32            levels2 B32;
  411.     xieTypConstrainTechnique    constrain B16;
  412.     CARD16            lenParams B16;
  413.     /* Technique dependent constrain params */
  414. } xieFloConstrain;
  415.  
  416. typedef struct {
  417.     CARD16        elemType B16;
  418.     CARD16        elemLength B16;
  419.     xieTypPhototag    src B16;
  420.     xieTypDataClass    class;
  421.     CARD8        precision;
  422.     Colormap        colormap B32;
  423. } xieFloConvertFromIndex;
  424.  
  425. typedef struct {
  426.     CARD16               elemType B16;
  427.     CARD16               elemLength B16;
  428.     xieTypPhototag           src B16;
  429.     CARD16               pad B16;
  430.     xieTypConvertFromRGBTechnique  convert B16;
  431.     CARD16               lenParams B16;
  432.     /* Technique dependent conversion params */
  433. } xieFloConvertFromRGB;
  434.  
  435. typedef struct {
  436.     CARD16            elemType B16;
  437.     CARD16            elemLength B16;
  438.     xieTypPhototag        src B16;
  439.     BOOL            notify;
  440.     CARD8            pad;
  441.     Colormap            colormap B32;
  442.     xieTypColorList        colorList B32;
  443.     xieTypColorAllocTechnique    colorAlloc B16;
  444.     CARD16            lenParams B16;
  445.     /* Technique dependent color alloc params */
  446. } xieFloConvertToIndex;
  447.  
  448. typedef struct {
  449.     CARD16            elemType B16;
  450.     CARD16            elemLength B16;
  451.     xieTypPhototag        src B16;
  452.     CARD16            pad B16;
  453.     xieTypConvertToRGBTechnique    convert B16;
  454.     CARD16            lenParams B16;
  455.     /* Technique dependent conversion params */
  456. } xieFloConvertToRGB;
  457.  
  458. typedef struct {
  459.     CARD16            elemType B16;
  460.     CARD16            elemLength B16;
  461.     xieTypPhototag        src B16;
  462.     CARD16            pad B16;
  463.     INT32            domainOffsetX B32;
  464.     INT32            domainOffsetY B32;
  465.     xieTypPhototag        domainPhototag B16;        
  466.     CARD8            bandMask;
  467.     CARD8            kernelSize;
  468.     xieTypConvolveTechnique    convolve B16;
  469.     CARD16            lenParams B16;
  470.     /* LISTofFloat (kernelSize^2) */
  471.     /* Technique dependent convolve params */
  472. } xieFloConvolve;
  473.  
  474. typedef struct {
  475.     CARD16            elemType B16;
  476.     CARD16            elemLength B16;
  477.     xieTypPhototag        src B16;
  478.     CARD8            bandMask;
  479.     CARD8            pad;
  480.     CARD32            levels0 B32;
  481.     CARD32            levels1 B32;
  482.     CARD32            levels2 B32;
  483.     xieTypDitherTechnique    dither B16;
  484.     CARD16            lenParams B16;
  485.     /* Technique dependent dither params */
  486. } xieFloDither;
  487.  
  488. typedef struct {
  489.     CARD16            elemType B16;
  490.     CARD16            elemLength B16;
  491.     xieTypPhototag         src B16;
  492.     CARD8            bandMask;
  493.     CARD8            pad;
  494.     CARD32            width B32;
  495.     CARD32            height B32;
  496.     xieTypFloat            a B32;
  497.     xieTypFloat            b B32;
  498.     xieTypFloat            c B32;
  499.     xieTypFloat            d B32;
  500.     xieTypFloat            tx B32;
  501.     xieTypFloat            ty B32;
  502.     xieTypFloat            constant0 B32;
  503.     xieTypFloat            constant1 B32;
  504.     xieTypFloat            constant2 B32;
  505.     xieTypGeometryTechnique    sample B16;
  506.     CARD16            lenParams B16;
  507.     /* Technique dependent sample params */
  508. } xieFloGeometry;
  509.  
  510. typedef struct {
  511.     CARD16        elemType B16;
  512.     CARD16        elemLength B16;
  513.     xieTypPhototag    src1 B16;
  514.     xieTypPhototag    src2 B16;
  515.     INT32        domainOffsetX B32;
  516.     INT32        domainOffsetY B32;
  517.     xieTypPhototag    domainPhototag B16;        
  518.     CARD8        operator;
  519.     CARD8        bandMask;
  520.     xieTypFloat        constant0 B32;
  521.     xieTypFloat        constant1 B32;
  522.     xieTypFloat        constant2 B32;
  523. } xieFloLogical;
  524.  
  525. typedef struct {
  526.     CARD16            elemType B16;
  527.     CARD16            elemLength B16;
  528.     xieTypPhototag        src B16;
  529.     CARD16            pad1 B16;
  530.     INT32            domainOffsetX B32;
  531.     INT32            domainOffsetY B32;
  532.     xieTypPhototag        domainPhototag B16;        
  533.     CARD16            pad2 B16;
  534.     xieTypHistogramShape    shape B16;
  535.     CARD16            lenParams B16;
  536.     /* Technique dependent shape params */
  537. } xieFloMatchHistogram;
  538.  
  539. typedef struct {
  540.     CARD16        elemType B16;
  541.     CARD16        elemLength B16;
  542.     xieTypPhototag    src B16;
  543.     CARD16        pad B16;
  544.     INT32        domainOffsetX B32;
  545.     INT32        domainOffsetY B32;
  546.     xieTypPhototag    domainPhototag B16;        
  547.     xieTypMathOp    operator;
  548.     CARD8        bandMask;
  549. } xieFloMath;
  550.  
  551. typedef struct {
  552.     CARD16        elemType B16;
  553.     CARD16        elemLength B16;
  554.     CARD16        numTiles B16;
  555.     CARD16        pad B16;
  556.     CARD32        width B32;
  557.     CARD32        height B32;
  558.     xieTypFloat        constant0 B32;
  559.     xieTypFloat        constant1 B32;
  560.     xieTypFloat        constant2 B32;
  561.     /* LISTofTile (numTiles) */
  562. } xieFloPasteUp;
  563.  
  564. typedef struct {
  565.     CARD16        elemType B16;
  566.     CARD16        elemLength B16;
  567.     xieTypPhototag    src B16;
  568.     xieTypPhototag    lut B16;
  569.     INT32        domainOffsetX B32;
  570.     INT32        domainOffsetY B32;
  571.     xieTypPhototag    domainPhototag B16;        
  572.     CARD8        bandMask;
  573.     CARD8        pad;
  574. } xieFloPoint;
  575.  
  576. typedef struct {
  577.     CARD16            elemType B16;
  578.     CARD16            elemLength B16;
  579.     xieTypPhototag        src B16;
  580.     CARD16            pad B16;
  581. } xieFloUnconstrain;
  582.  
  583.  
  584. /*
  585.  * Export Elements
  586.  */
  587. typedef struct {
  588.     CARD16        elemType B16;
  589.     CARD16        elemLength B16;
  590.     xieTypPhototag    src B16;
  591.     xieTypExportNotify    notify;
  592.     CARD8        pad1;
  593.     INT32        domainOffsetX B32;
  594.     INT32        domainOffsetY B32;
  595.     xieTypPhototag    domainPhototag B16;        
  596.     CARD16        pad2 B16;
  597. } xieFloExportClientHistogram;
  598.  
  599. typedef struct {
  600.     CARD16        elemType B16;
  601.     CARD16        elemLength B16;
  602.     xieTypPhototag    src B16;
  603.     xieTypExportNotify    notify;
  604.     xieTypOrientation    bandOrder;
  605.     CARD32        start0  B32;
  606.     CARD32        start1  B32;
  607.     CARD32        start2  B32;
  608.     CARD32        length0 B32;
  609.     CARD32        length1 B32;
  610.     CARD32        length2 B32;
  611. } xieFloExportClientLUT;
  612.  
  613. typedef struct {
  614.     CARD16            elemType B16;
  615.     CARD16            elemLength B16;
  616.     xieTypPhototag        src B16;
  617.     xieTypExportNotify        notify;
  618.     CARD8            pad;
  619.     xieTypEncodeTechnique    encodeTechnique B16;
  620.     CARD16            lenParams B16;
  621.     /* Technique dependent encode params */
  622. } xieFloExportClientPhoto;
  623.  
  624. typedef struct {
  625.     CARD16        elemType B16;
  626.     CARD16        elemLength B16;
  627.     xieTypPhototag    src B16;
  628.     xieTypExportNotify    notify;
  629.     CARD8        pad;
  630. } xieFloExportClientROI;
  631.  
  632. typedef struct {
  633.     CARD16        elemType B16;
  634.     CARD16        elemLength B16;
  635.     xieTypPhototag    src B16;
  636.     INT16        dstX B16;
  637.     INT16        dstY B16;
  638.     CARD16        pad B16;
  639.     Drawable        drawable B32;
  640.     GContext        gc B32;
  641. } xieFloExportDrawable;
  642.  
  643. typedef struct {
  644.     CARD16        elemType B16;
  645.     CARD16        elemLength B16;
  646.     xieTypPhototag    src B16;
  647.     INT16        dstX B16;
  648.     INT16        dstY B16;
  649.     CARD16        pad B16;
  650.     Drawable        drawable B32;
  651.     GContext        gc B32;
  652. } xieFloExportDrawablePlane;
  653.  
  654. typedef struct {
  655.     CARD16        elemType B16;
  656.     CARD16        elemLength B16;
  657.     xieTypPhototag    src B16;
  658.     CARD8        merge;
  659.     CARD8        pad;
  660.     xieTypLUT        lut B32;
  661.     CARD32        start0 B32;
  662.     CARD32        start1 B32;
  663.     CARD32        start2 B32;
  664. } xieFloExportLUT;
  665.  
  666. typedef struct {
  667.     CARD16            elemType B16;
  668.     CARD16            elemLength B16;
  669.     xieTypPhototag        src B16;
  670.     CARD16            pad B16;
  671.     xieTypPhotomap        photomap B32;
  672.     xieTypEncodeTechnique    encodeTechnique B16;
  673.     CARD16            lenParams B16;
  674.     /* Technique dependent encode params */
  675. } xieFloExportPhotomap;
  676.  
  677. typedef struct {
  678.     CARD16        elemType B16;
  679.     CARD16        elemLength B16;
  680.     xieTypPhototag    src B16;
  681.     CARD16        pad B16;
  682.     xieTypROI        roi B32;
  683. } xieFloExportROI;
  684.  
  685.  
  686. /*
  687.  * Technique Parameters
  688.  */
  689.  
  690. typedef struct {
  691.     xieTypFloat        inputLow0   B32;
  692.     xieTypFloat        inputLow1   B32;
  693.     xieTypFloat        inputLow2   B32;
  694.     xieTypFloat        inputHigh0  B32;
  695.     xieTypFloat        inputHigh1  B32;
  696.     xieTypFloat        inputHigh2  B32;
  697.     CARD32        outputLow0  B32;
  698.     CARD32        outputLow1  B32;
  699.     CARD32        outputLow2  B32;
  700.     CARD32        outputHigh0 B32;
  701.     CARD32        outputHigh1 B32;
  702.     CARD32        outputHigh2 B32;
  703. } xieTecClipScale;
  704.  
  705. typedef struct {
  706.     CARD32        fill B32;
  707. } xieTecColorAllocAll;
  708.  
  709. typedef struct {
  710.     xieTypFloat        matchLimit B32;
  711.     xieTypFloat        grayLimit B32;
  712. } xieTecColorAllocMatch;
  713.  
  714. typedef struct {
  715.     CARD32        maxCells B32;
  716. } xieTecColorAllocRequantize;
  717.  
  718. typedef struct {
  719.     xieTypFloat            matrix00 B32;
  720.     xieTypFloat            matrix01 B32;
  721.     xieTypFloat            matrix02 B32;
  722.     xieTypFloat            matrix10 B32;
  723.     xieTypFloat            matrix11 B32;
  724.     xieTypFloat            matrix12 B32;
  725.     xieTypFloat            matrix20 B32;
  726.     xieTypFloat            matrix21 B32;
  727.     xieTypFloat            matrix22 B32;
  728.     xieTypWhiteAdjustTechnique    whiteAdjusted B16;
  729.     CARD16            lenParams B16;
  730.     /* Technique dependent white params */
  731. } xieTecRGBToCIELab, xieTecRGBToCIEXYZ;
  732.  
  733. typedef struct {
  734.     CARD32        levels0 B32;
  735.     CARD32        levels1 B32;
  736.     CARD32        levels2 B32;
  737.     xieTypFloat        lumaRed B32;
  738.     xieTypFloat        lumaGreen B32;
  739.     xieTypFloat        lumaBlue B32;
  740.     xieTypFloat        bias0 B32;
  741.     xieTypFloat        bias1 B32;
  742.     xieTypFloat        bias2 B32;
  743. } xieTecRGBToYCbCr;
  744.  
  745. typedef struct {
  746.     CARD32        levels0 B32;
  747.     CARD32        levels1 B32;
  748.     CARD32        levels2 B32;
  749.     xieTypFloat        lumaRed B32;
  750.     xieTypFloat        lumaGreen B32;
  751.     xieTypFloat        lumaBlue B32;
  752.     xieTypFloat        scale B32;
  753. } xieTecRGBToYCC;
  754.  
  755. typedef struct {
  756.     xieTypFloat            matrix00 B32;
  757.     xieTypFloat            matrix01 B32;
  758.     xieTypFloat            matrix02 B32;
  759.     xieTypFloat            matrix10 B32;
  760.     xieTypFloat            matrix11 B32;
  761.     xieTypFloat            matrix12 B32;
  762.     xieTypFloat            matrix20 B32;
  763.     xieTypFloat            matrix21 B32;
  764.     xieTypFloat            matrix22 B32;
  765.     xieTypWhiteAdjustTechnique    whiteAdjusted B16;
  766.     CARD16            lenWhiteParams B16;
  767.     xieTypGamutTechnique    gamutCompress B16;
  768.     CARD16            lenGamutParams B16;
  769.     /* Technique dependent white params */
  770.     /* Technique dependent gamut params */
  771. } xieTecCIELabToRGB, xieTecCIEXYZToRGB;
  772.  
  773. typedef struct {
  774.     CARD32            levels0 B32;
  775.     CARD32            levels1 B32;
  776.     CARD32            levels2 B32;
  777.     xieTypFloat            lumaRed B32;
  778.     xieTypFloat            lumaGreen B32;
  779.     xieTypFloat            lumaBlue B32;
  780.     xieTypFloat            bias0 B32;
  781.     xieTypFloat            bias1 B32;
  782.     xieTypFloat            bias2 B32;
  783.     xieTypGamutTechnique    gamutCompress B16;
  784.     CARD16            lenGamutParams B16;
  785.     /* Technique dependent gamut params */
  786. } xieTecYCbCrToRGB;
  787.  
  788. typedef struct {
  789.     CARD32            levels0 B32;
  790.     CARD32            levels1 B32;
  791.     CARD32            levels2 B32;
  792.     xieTypFloat            lumaRed B32;
  793.     xieTypFloat            lumaGreen B32;
  794.     xieTypFloat            lumaBlue B32;
  795.     xieTypFloat            scale B32;
  796.     xieTypGamutTechnique    gamutCompress B16;
  797.     CARD16            lenGamutParams B16;
  798.     /* Technique dependent gamut params */
  799. } xieTecYCCToRGB;
  800.  
  801. typedef struct {
  802.     xieTypFloat        constant0 B32;
  803.     xieTypFloat        constant1 B32;
  804.     xieTypFloat        constant2 B32;
  805. } xieTecConvolveConstant;
  806.  
  807. typedef struct {
  808.     xieTypOrientation    fillOrder;
  809.     xieTypOrientation    pixelOrder;
  810.     CARD8        pixelStride;
  811.     CARD8        leftPad;
  812.     CARD8        scanlinePad;
  813.     CARD8        pad[3];
  814. } xieTecDecodeUncompressedSingle;
  815.  
  816. typedef struct {
  817.     CARD8        leftPad[3];
  818.     xieTypOrientation    fillOrder;
  819.     CARD8        pixelStride[3];
  820.     xieTypOrientation    pixelOrder;
  821.     CARD8        scanlinePad[3];
  822.     xieTypOrientation    bandOrder;
  823.     xieTypInterleave    interleave;
  824.     CARD8        pad[3];
  825. } xieTecDecodeUncompressedTriple;
  826.  
  827. typedef struct {
  828.     xieTypOrientation    encodedOrder;
  829.     BOOL        normal;
  830.     BOOL        radiometric;
  831.     CARD8        pad;
  832. } xieTecDecodeG31D, xieTecDecodeG32D, xieTecDecodeG42D,
  833.   xieTecDecodeTIFF2;
  834.  
  835. typedef struct {
  836.     xieTypOrientation    encodedOrder;
  837.     BOOL        normal;
  838.     CARD16        pad B16;
  839. } xieTecDecodeTIFFPackBits;
  840.  
  841. typedef struct {
  842.     xieTypInterleave    interleave;
  843.     xieTypOrientation    bandOrder;
  844.     BOOL        upSample;
  845.     CARD8        pad;
  846. } xieTecDecodeJPEGBaseline;
  847.  
  848. typedef struct {
  849.     xieTypInterleave    interleave;
  850.     xieTypOrientation    bandOrder;
  851.     CARD16        pad B16;
  852. } xieTecDecodeJPEGLossless;
  853.  
  854. typedef struct {
  855.     CARD8    thresholdOrder;
  856.     CARD8    pad[3];
  857. } xieTecDitherOrdered;
  858.  
  859. typedef struct {
  860.     CARD8        preference;
  861.     CARD8        pad[3];
  862. } xieTecEncodeServerChoice;
  863.  
  864. typedef struct {
  865.     xieTypOrientation    fillOrder;
  866.     xieTypOrientation    pixelOrder;
  867.     CARD8        pixelStride;
  868.     CARD8        scanlinePad;
  869. } xieTecEncodeUncompressedSingle;
  870.  
  871. typedef struct {
  872.     CARD8        pixelStride[3];
  873.     xieTypOrientation    pixelOrder;
  874.     CARD8        scanlinePad[3];
  875.     xieTypOrientation    fillOrder;
  876.     xieTypOrientation    bandOrder;
  877.     xieTypInterleave    interleave;
  878.     CARD16        pad B16;
  879. } xieTecEncodeUncompressedTriple;
  880.  
  881. typedef struct {
  882.     xieTypOrientation    encodedOrder;
  883.     BOOL        alignEol;
  884.     BOOL        radiometric;
  885.     CARD8        pad;
  886. } xieTecEncodeG31D;
  887.  
  888. typedef struct {
  889.     xieTypOrientation    encodedOrder;
  890.     BOOL        alignEol;
  891.     BOOL        radiometric;
  892.     BOOL        uncompressed;
  893.     CARD32        kFactor B32;
  894. } xieTecEncodeG32D;
  895.  
  896. typedef struct {
  897.     xieTypOrientation    encodedOrder;
  898.     BOOL        radiometric;
  899.     BOOL        uncompressed;
  900.     CARD8        pad;
  901. } xieTecEncodeG42D;
  902.  
  903. typedef struct {
  904.     xieTypInterleave    interleave;
  905.     xieTypOrientation    bandOrder;
  906.     CARD8        horizontalSamples[3];
  907.     CARD8        verticalSamples[3];
  908.     CARD16        lenQtable  B16;    /* multiple of 4 */
  909.     CARD16        lenACtable B16;    /* multiple of 4 */
  910.     CARD16        lenDCtable B16;    /* multiple of 4 */
  911.     CARD16        pad B16;
  912.     /* LISTofCARD8 (Qtable)  */
  913.     /* LISTofCARD8 (ACtable) */
  914.     /* LISTofCARD8 (DCtable) */
  915. } xieTecEncodeJPEGBaseline;
  916.  
  917. typedef struct {
  918.     xieTypInterleave    interleave;
  919.     xieTypOrientation    bandOrder;
  920.     CARD16        lenTable B16;    /* multiple of 4 */
  921.     CARD8        predictor[3];
  922.     CARD8        pad;
  923.     /* LISTofCARD8 (table) */
  924. } xieTecEncodeJPEGLossless;
  925.  
  926. typedef struct {
  927.     xieTypOrientation    encodedOrder;
  928.     BOOL        radiometric;
  929.     CARD16        pad B16;
  930. } xieTecEncodeTIFF2;
  931.  
  932. typedef struct {
  933.     xieTypOrientation    encodedOrder;
  934.     CARD8        pad[3];
  935. } xieTecEncodeTIFFPackBits;
  936.  
  937. typedef struct {
  938.     INT16    simple B16;
  939.     CARD16    pad B16;
  940. } xieTecGeomAntialiasByArea;
  941.  
  942. typedef struct {
  943.     INT16    kernelSize B16;
  944.     CARD16    pad B16;
  945. } xieTecGeomAntialiasByLowpass;
  946.  
  947. typedef struct {
  948.     CARD8    radius;
  949.     BOOL    simple;
  950.     CARD16    pad B16;
  951.     xieTypFloat    sigma B32;
  952.     xieTypFloat    normalize B32;
  953. } xieTecGeomGaussian;
  954.  
  955. typedef struct {
  956.     CARD8    modify;
  957.     CARD8    pad[3];
  958. } xieTecGeomNearestNeighbor;
  959.  
  960. typedef struct {
  961.     xieTypFloat        mean B32;
  962.     xieTypFloat        sigma B32;
  963. } xieTecHistogramGaussian;
  964.  
  965. typedef struct {
  966.     BOOL        shapeFactor;
  967.     CARD8        pad[3];
  968.     xieTypFloat        constant B32;
  969. } xieTecHistogramHyperbolic;
  970.  
  971. typedef struct {
  972.     xieTypFloat        whitePoint0 B32;
  973.     xieTypFloat        whitePoint1 B32;
  974.     xieTypFloat        whitePoint2 B32;
  975. } xieTecWhiteAdjustCIELabShift;
  976.  
  977.  
  978. /*
  979.  * SIZEOF values
  980.  */
  981. #define sz_xieTypAlignment            1
  982. #define sz_xieTypArithmeticOp            1
  983. #define sz_xieTypColorAllocTechnique        2
  984. #define sz_xieTypColorList            4
  985. #define sz_xieTypCompareOp            1
  986. #define sz_xieTypConstant            12
  987. #define sz_xieTypConstrainTechnique        2
  988. #define sz_xieTypConvertFromRGBTechnique    2
  989. #define sz_xieTypConvertToRGBTechnique        2
  990. #define sz_xieTypConvolveTechnique        2
  991. #define sz_xieTypDataClass            1
  992. #define sz_xieTypDataType            1
  993. #define sz_xieTypDecodeTechnique        2
  994. #define sz_xieTypDitherTechnique        2
  995. #define sz_xieTypEncodeTechnique        2
  996. #define sz_xieTypPhotospace            4
  997. #define sz_xieTypPhotoflo            4
  998. #define sz_xieTypExecutable            8
  999. #define sz_xieTypExportNotify            1
  1000. #define sz_xieTypExportState            1
  1001. #define sz_xieTypFloat                4
  1002. #define sz_xieTypGamutTechnique            2
  1003. #define sz_xieTypGeometryTechnique        2
  1004. #define sz_xieTypHistogramData            8
  1005. #define sz_xieTypHistogramShape            2
  1006. #define sz_xieTypInterleave            1
  1007. #define sz_xieTypLevels                12
  1008. #define sz_xieTypLUT                4
  1009. #define sz_xieTypMathOp                1
  1010. #define sz_xieTypMatrix                36
  1011. #define sz_xieTypOrientation            1
  1012. #define sz_xieTypPhotofloOutcome        1
  1013. #define sz_xieTypPhotofloState            1
  1014. #define sz_xieTypPhotomap            4
  1015. #define sz_xieTypPhototag            2
  1016. #define sz_xieTypProcessDomain            12
  1017. #define sz_xieTypRectangle            16
  1018. #define sz_xieTypROI                4
  1019. #define sz_xieTypServiceClass            1
  1020. #define sz_xieTypTechniqueGroup            1
  1021. #define sz_xieTypTechniqueRec            8
  1022. #define sz_xieTypTile                12
  1023. #define sz_xieTypTripleofCARD8            3
  1024. #define sz_xieTypTripleofCARD16            6
  1025. #define sz_xieTypTripleofCARD32            12
  1026. #define sz_xieTypWhiteAdjustTechnique        2
  1027. #define sz_xieFloImportClientLUT        32
  1028. #define sz_xieFloImportClientPhoto        48
  1029. #define sz_xieFloImportClientROI        8
  1030. #define sz_xieFloImportDrawable            24
  1031. #define sz_xieFloImportDrawablePlane        28
  1032. #define sz_xieFloImportLUT            8
  1033. #define sz_xieFloImportPhotomap            12
  1034. #define sz_xieFloImportROI            8
  1035. #define sz_xieFloArithmetic            32
  1036. #define sz_xieFloBandCombine            12
  1037. #define sz_xieFloBandExtract            28
  1038. #define sz_xieFloBandSelect            8
  1039. #define sz_xieFloBlend                40
  1040. #define sz_xieFloCompare            36
  1041. #define sz_xieFloConstrain            24
  1042. #define sz_xieFloConvertFromIndex        12
  1043. #define sz_xieFloConvertFromRGB            12
  1044. #define sz_xieFloConvertToIndex            20
  1045. #define sz_xieFloConvertToRGB            12
  1046. #define sz_xieFloConvolve            24
  1047. #define sz_xieFloDither                24
  1048. #define sz_xieFloGeometry            56
  1049. #define sz_xieFloLogical            32
  1050. #define sz_xieFloMatchHistogram            24
  1051. #define sz_xieFloMath                20
  1052. #define sz_xieFloPasteUp            28
  1053. #define sz_xieFloPoint                20
  1054. #define sz_xieFloUnconstrain            8
  1055. #define sz_xieFloExportClientHistogram        20
  1056. #define sz_xieFloExportClientLUT        32
  1057. #define sz_xieFloExportClientPhoto        12
  1058. #define sz_xieFloExportClientROI        8
  1059. #define sz_xieFloExportDrawable            20
  1060. #define sz_xieFloExportDrawablePlane        20
  1061. #define sz_xieFloExportLUT            24
  1062. #define sz_xieFloExportPhotomap            16
  1063. #define sz_xieFloExportROI            12
  1064. #define sz_xieTecColorAllocAll            4
  1065. #define sz_xieTecColorAllocMatch        8
  1066. #define sz_xieTecColorAllocRequantize        4
  1067. #define sz_xieTecClipScale            48
  1068. #define sz_xieTecHardClip            0
  1069. #define sz_xieTecRGBToCIELab            40
  1070. #define sz_xieTecRGBToCIEXYZ            40
  1071. #define sz_xieTecRGBToYCbCr            36
  1072. #define sz_xieTecRGBToYCC            28
  1073. #define sz_xieTecYCbCrToRGB            40
  1074. #define sz_xieTecYCCToRGB            32
  1075. #define sz_xieTecCIELabToRGB            44
  1076. #define sz_xieTecCIEXYZToRGB            44
  1077. #define sz_xieTecConvolveConstant        12
  1078. #define sz_xieTecConvolveReplicate        0
  1079. #define sz_xieTecDecodeUncompressedSingle    8
  1080. #define sz_xieTecDecodeUncompressedTriple    16
  1081. #define sz_xieTecDecodeG31D            4
  1082. #define sz_xieTecDecodeG32D            4
  1083. #define sz_xieTecDecodeG42D            4
  1084. #define sz_xieTecDecodeTIFF2            4
  1085. #define sz_xieTecDecodeTIFFPackBits        4
  1086. #define sz_xieTecDecodeJPEGBaseline        4
  1087. #define sz_xieTecDecodeJPEGLossless        4
  1088. #define sz_xieTecDitherOrdered            4
  1089. #define sz_xieTecDitherErrorDiffusion        4
  1090. #define sz_xieTecEncodeServerChoice        4
  1091. #define sz_xieTecEncodeUncompressedSingle    4
  1092. #define sz_xieTecEncodeUncompressedTriple    12
  1093. #define sz_xieTecEncodeG31D            4
  1094. #define sz_xieTecEncodeG32D            8
  1095. #define sz_xieTecEncodeG42D            4
  1096. #define sz_xieTecEncodeJPEGBaseline        16
  1097. #define sz_xieTecEncodeJPEGLossless        8
  1098. #define sz_xieTecEncodeTIFF2            4
  1099. #define sz_xieTecEncodeTIFFPackBits        4
  1100. #define sz_xieTecGamutNone            0
  1101. #define sz_xieTecGamutClipRGB            0
  1102. #define sz_xieTecGeomAntialias            0
  1103. #define sz_xieTecGeomAntialiasByArea        4
  1104. #define sz_xieTecGeomAntialiasByLowpass        4
  1105. #define sz_xieTecGeomBilinearInterpolation    0
  1106. #define sz_xieTecGeomGaussian            12
  1107. #define sz_xieTecGeomNearestNeighbor        4
  1108. #define sz_xieTecHistogramFlat            0
  1109. #define sz_xieTecHistogramGaussian        8
  1110. #define sz_xieTecHistogramHyperbolic        8
  1111. #define sz_xieTecWhiteAdjustNone        0
  1112. #define sz_xieTecWhiteAdjustCIELabShift        12
  1113.  
  1114. #undef Drawable
  1115. #undef Colormap
  1116. #undef GContext
  1117.  
  1118. #endif /* _XIEPROTOST_H_ */
  1119.