summaryrefslogtreecommitdiff
path: root/xc/lib/PEX5/pl_extract.h
diff options
context:
space:
mode:
Diffstat (limited to 'xc/lib/PEX5/pl_extract.h')
-rw-r--r--xc/lib/PEX5/pl_extract.h1160
1 files changed, 0 insertions, 1160 deletions
diff --git a/xc/lib/PEX5/pl_extract.h b/xc/lib/PEX5/pl_extract.h
deleted file mode 100644
index 174881309..000000000
--- a/xc/lib/PEX5/pl_extract.h
+++ /dev/null
@@ -1,1160 +0,0 @@
-/* $TOG: pl_extract.h /main/6 1998/02/06 16:10:05 kaleb $ */
-/*
-
-Copyright 1992, 1998 The Open Group
-
-All Rights Reserved.
-
-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 OPEN GROUP 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 Open Group 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 Open Group.
-
-*/
-
-#ifndef WORD64
-
-#define GET_CARD32(_pBuf, _val) \
- _val = *((CARD32 *) _pBuf)
-
-#define GET_CARD16(_pBuf, _val) \
- _val = *((CARD16 *) _pBuf)
-
-#define GET_INT32(_pBuf, _val) \
- _val = *((INT32 *) _pBuf)
-
-#define GET_INT16(_pBuf, _val) \
- _val = *((INT16 *) _pBuf)
-
-#else /* WORD64 */
-
-#define GET_CARD32(_pBuf, _val) \
- CARD32_TO_64 (_pBuf, _val)
-
-#define GET_CARD16(_pBuf, _val) \
- CARD16_TO_64 (_pBuf, _val)
-
-#define GET_INT32(_pBuf, _val) \
- INT32_TO_64 (_pBuf, _val)
-
-#define GET_INT16(_pBuf, _val) \
- INT16_TO_64 (_pBuf, _val)
-
-#endif /* WORD64 */
-
-
-#define EXTRACT_CARD32(_pBuf, _val) \
-{ \
- GET_CARD32 (_pBuf, _val); \
- _pBuf += SIZEOF (CARD32); \
-}
-
-#define EXTRACT_CARD16(_pBuf, _val) \
-{ \
- GET_CARD16 (_pBuf, _val); \
- _pBuf += SIZEOF (CARD16); \
-}
-
-#define EXTRACT_INT32(_pBuf, _val) \
-{ \
- GET_INT32 (_pBuf, _val); \
- _pBuf += SIZEOF (INT32); \
-}
-
-#define EXTRACT_INT16(_pBuf, _val) \
-{ \
- GET_INT16 (_pBuf, _val); \
- _pBuf += SIZEOF (INT16); \
-}
-
-/* ------------------------------------------------------------------------ */
-
-#ifndef WORD64
-
-#define EXTRACT_LISTOF_CARD32(_count, _pBuf, _pList) \
-{ \
- memcpy (_pList, _pBuf, _count * SIZEOF (CARD32)); \
- _pBuf += (_count * SIZEOF (CARD32)); \
-}
-
-#define EXTRACT_LISTOF_CARD16(_count, _pBuf, _pList) \
-{ \
- memcpy (_pList, _pBuf, _count * SIZEOF (CARD16)); \
- _pBuf += (_count * SIZEOF (CARD16)); \
-}
-
-#define EXTRACT_LISTOF_INT32(_count, _pBuf, _pList) \
-{ \
- memcpy (_pList, _pBuf, _count * SIZEOF (INT32)); \
- _pBuf += (_count * SIZEOF (INT32)); \
-}
-
-#define EXTRACT_LISTOF_INT16(_count, _pBuf, _pList) \
-{ \
- memcpy (_pList, _pBuf, _count * SIZEOF (INT16)); \
- _pBuf += (_count * SIZEOF (INT16)); \
-}
-
-#else /* WORD64 */
-
-#define EXTRACT_LISTOF_CARD32(_count, _pBuf, _pList) \
-{ \
- int _i; \
- for (_i = 0; _i < _count; _i++) \
- EXTRACT_CARD32 (_pBuf, _pList[_i]); \
-}
-
-#define EXTRACT_LISTOF_CARD16(_count, _pBuf, _pList) \
-{ \
- int _i; \
- for (_i = 0; _i < _count; _i++) \
- EXTRACT_CARD16 (_pBuf, _pList[_i]); \
-}
-
-#define EXTRACT_LISTOF_INT32(_count, _pBuf, _pList) \
-{ \
- int _i; \
- for (_i = 0; _i < _count; _i++) \
- EXTRACT_INT32 (_pBuf, _pList[_i]); \
-}
-
-#define EXTRACT_LISTOF_INT16(_count, _pBuf, _pList) \
-{ \
- int _i; \
- for (_i = 0; _i < _count; _i++) \
- EXTRACT_INT16 (_pBuf, _pList[_i]); \
-}
-
-#endif /* WORD64 */
-
-/* ------------------------------------------------------------------------ */
-
-/* List of Values - all values extracted from 4 byte field */
-
-#ifndef WORD64
-
-#define EXTRACT_LOV_CARD16(_pBuf, _val) \
- EXTRACT_CARD32 (_pBuf, _val);
-
-#define EXTRACT_LOV_INT16(_pBuf, _val) \
- EXTRACT_CARD32 (_pBuf, _val);
-
-#else /* WORD64 */
-
-#define EXTRACT_LOV_CARD16(_pBuf, _val) \
-{ \
- _pBuf += 2; \
- EXTRACT_CARD16 (_pBuf, _val); \
-}
-
-#define EXTRACT_LOV_INT16(_pBuf, _val) \
-{ \
- _pBuf += 2; \
- EXTRACT_INT16 (_pBuf, _val); \
-}
-
-#endif /* WORD64 */
-
-
-#define EXTRACT_LOV_CARD8(_pBuf, _val) \
- EXTRACT_CARD32 (_pBuf, _val);
-
-
-/* ------------------------------------------------------------------------ */
-
-#ifndef WORD64
-
-#define EXTRACT_FLOAT32(_pBuf, _val, _fpConvert, _fpFormat) \
-{ \
- if (!_fpConvert) \
- { \
- _val = *((float *) _pBuf); \
- } \
- else \
- { \
- FP_CONVERT_NTOH_BUFF (_pBuf, _val, _fpFormat); \
- } \
- _pBuf += SIZEOF (float); \
-}
-
-#define EXTRACT_LISTOF_FLOAT32(_count, _pBuf, _pList, _fpConvert, _fpFormat) \
-{ \
- if (!_fpConvert) \
- { \
- memcpy (_pList, _pBuf, _count * SIZEOF (float)); \
- _pBuf += (_count * SIZEOF (float)); \
- } \
- else \
- { \
- int _i; \
- float *fptr = (float *) _pList; \
-\
- for (_i = 0; _i < (int) _count; _i++) \
- { \
- FP_CONVERT_NTOH_BUFF (_pBuf, *fptr, _fpFormat); \
- _pBuf += SIZEOF (float); \
- fptr++; \
- } \
- }\
-}
-
-#else /* WORD64 */
-
-#define EXTRACT_FLOAT32(_pBuf, _val, _fpConvert, _fpFormat) \
-{ \
- FP_CONVERT_NTOH_BUFF (_pBuf, _val, _fpFormat); \
- _pBuf += SIZEOF (float); \
-}
-
-#define EXTRACT_LISTOF_FLOAT32(_count, _pBuf, _pList, _fpConvert, _fpFormat) \
-{ \
- int _i; \
- float *fptr = (float *) _pList; \
-\
- for (_i = 0; _i < (int) _count; _i++) \
- { \
- FP_CONVERT_NTOH_BUFF (_pBuf, *fptr, _fpFormat); \
- _pBuf += SIZEOF (float); \
- fptr++; \
- } \
-}
-
-#endif /* WORD64 */
-
-
-
-/* ------------------------------------------------------------------------ */
-/* EXTRACT_FOO and EXTRACT_LISTOF_FOO */
-/* (where FOO has no floating point values in it) */
-/* ------------------------------------------------------------------------ */
-
-
-#if (defined(__STDC__) && !defined(UNIXCPP)) || defined(ANSICPP)
-#define GET_TEMP(_pexType, _tFoo, _foo) GET_TEMP_##_pexType (_tFoo, _foo);
-#else
-#define GET_TEMP(_pexType, _tFoo, _foo) GET_TEMP_/**/_pexType (_tFoo, _foo);
-#endif
-
-
-#ifndef WORD64
-
-#define EXTRACT_FOO(_pexType, _pBuf, _foo) \
-{ \
- memcpy (&(_foo), _pBuf, SIZEOF (_pexType)); \
- _pBuf += SIZEOF (_pexType); \
-}
-
-#define EXTRACT_LISTOF_FOO(_pexType, _count, _pBuf, _fooList) \
-{ \
- memcpy (_fooList, _pBuf, _count * SIZEOF (_pexType)); \
- _pBuf += (_count * SIZEOF (_pexType)); \
-}
-
-#else /* WORD64 */
-
-#define EXTRACT_FOO(_pexType, _pBuf, _foo) \
-{ \
- _pexType tFoo; \
- memcpy (&tFoo, _pBuf, SIZEOF (_pexType)); \
- GET_TEMP(_pexType, tFoo, _foo); \
- _pBuf += SIZEOF (_pexType); \
-}
-
-#define EXTRACT_LISTOF_FOO(_pexType, _count, _pBuf, _fooList) \
-{ \
- _pexType tFoo; \
- int _i; \
-\
- for (_i = 0; _i < (int) _count; _i++) \
- { \
- memcpy (&tFoo, _pBuf, SIZEOF (_pexType)); \
- GET_TEMP (_pexType, tFoo, _fooList[_i]); \
- _pBuf += SIZEOF (_pexType); \
- } \
-}
-
-#endif /* WORD64 */
-
-
-/*
- * TEXT ALIGNMENT
- */
-
-#define EXTRACT_TEXTALIGN(_pBuf, _align) \
- EXTRACT_FOO (pexTextAlignmentData, _pBuf, _align)
-
-#define GET_TEMP_pexTextAlignmentData(_src, _dst) \
- _dst.vertical = _src.vertical; \
- _dst.horizontal = _src.horizontal;
-
-
-/*
- * PSC ISO CURVES
- */
-
-#define EXTRACT_PSC_ISOCURVES(_pBuf, _isoCurves) \
- EXTRACT_FOO (pexPSC_IsoparametricCurves, _pBuf, _isoCurves)
-
-#define GET_TEMP_pexPSC_IsoparametricCurves(_src, _dst) \
- _dst.placement_type = _src.placementType; \
- _dst.u_count = _src.numUcurves; \
- _dst.v_count = _src.numVcurves;
-
-
-/*
- * List of ELEMENT REF
- */
-
-#define EXTRACT_LISTOF_ELEMREF(_count, _pBuf, _pList) \
- EXTRACT_LISTOF_FOO (pexElementRef, _count, _pBuf, _pList)
-
-#define GET_TEMP_pexElementRef(_src, _dst) \
- _dst.structure = _src.structure; \
- _dst.offset = _src.offset;
-
-
-/*
- * List of ELEMENT INFO
- */
-
-#define EXTRACT_LISTOF_ELEMINFO(_count, _pBuf, _pList) \
- EXTRACT_LISTOF_FOO (pexElementInfo, _count, _pBuf, _pList)
-
-#define GET_TEMP_pexElementInfo(_src, _dst) \
- _dst.type = _src.elementType; \
- _dst.length = _src.length;
-
-
-/*
- * List of PICK ELEMENT REF
- */
-
-#define EXTRACT_LISTOF_PICKELEMREF(_count, _pBuf, _pList) \
- EXTRACT_LISTOF_FOO (pexPickElementRef, _count, _pBuf, _pList)
-
-#define GET_TEMP_pexPickElementRef(_src, _dst) \
- _dst.sid = _src.sid; \
- _dst.offset = _src.offset; \
- _dst.pick_id = _src.pickid;
-
-
-/*
- * List of DEVICE RECT
- */
-
-#define EXTRACT_LISTOF_DEVRECT(_count, _pBuf, _pList) \
- EXTRACT_LISTOF_FOO (pexDeviceRect, _count, _pBuf, _pList)
-
-#define GET_TEMP_pexDeviceRect(_src, _dst) \
- _dst.xmin = _src.xmin; \
- _dst.ymin = _src.ymin; \
- _dst.xmax = _src.xmax; \
- _dst.ymax = _src.ymax;
-
-
-/*
- * List of NAME SET PAIR
- */
-
-#define EXTRACT_LISTOF_NAMESET_PAIR(_count, _pBuf, _pList) \
- EXTRACT_LISTOF_FOO (pexNameSetPair, _count, _pBuf, _pList)
-
-#define GET_TEMP_pexNameSetPair(_src, _dst) \
- _dst.inclusion = _src.incl; \
- _dst.exclusion = _src.excl;
-
-
-/*
- * List of FONT PROP
- */
-
-#define EXTRACT_LISTOF_FONTPROP(_count, _pBuf, _pList) \
- EXTRACT_LISTOF_FOO (pexFontProp, _count, _pBuf, _pList)
-
-#define GET_TEMP_pexFontProp(_src, _dst) \
- _dst.name = _src.name; \
- _dst.value = _src.value;
-
-
-
-/* ------------------------------------------------------------------------ */
-/* EXTRACT_FOOFP and EXTRACT_LISTOF_FOOFP */
-/* ------------------------------------------------------------------------ */
-
-#if (defined(__STDC__) && !defined(UNIXCPP)) || defined(ANSICPP)
-#define DOEXTRACT(_pexType, _src, _dst, _fpConvert, _fpFormat) \
- DOEXTRACT_##_pexType (_src, _dst, _fpConvert, _fpFormat)
-#else
-#define DOEXTRACT(_pexType, _src, _dst, _fpConvert, _fpFormat) \
- DOEXTRACT_/**/_pexType (_src, _dst, _fpConvert, _fpFormat)
-#endif
-
-
-#ifndef WORD64
-
-#define EXTRACT_FOOFP(_pexType, _pBuf, _foo, _fpConvert, _fpFormat) \
-{ \
- if (!_fpConvert) \
- { \
- memcpy (&(_foo), _pBuf, SIZEOF (_pexType)); \
- } \
- else \
- { \
- _pexType *pFoo = (_pexType *) _pBuf; \
- DOEXTRACT (_pexType, pFoo, _foo, _fpConvert, _fpFormat); \
- } \
- _pBuf += SIZEOF (_pexType); \
-}
-
-#define EXTRACT_LISTOF_FOOFP(_pexType, _count, _pBuf, _fooList, _fpConvert, _fpFormat) \
-{ \
- if (!_fpConvert) \
- { \
- memcpy (_fooList, _pBuf, _count * SIZEOF (_pexType)); \
- _pBuf += (_count * SIZEOF (_pexType)); \
- } \
- else \
- { \
- int _i; \
- for (_i = 0; _i < (int) _count; _i++) \
- { \
- _pexType *pFoo = (_pexType *) _pBuf; \
- DOEXTRACT (_pexType, pFoo, _fooList[_i], _fpConvert, _fpFormat); \
- _pBuf += SIZEOF (_pexType); \
- } \
- } \
-}
-
-#else /* WORD64 */
-
-#define EXTRACT_FOOFP(_pexType, _pBuf, _foo, _fpConvert, _fpFormat) \
-{ \
- _pexType tFoo; \
- _pexType *pFoo = &tFoo; \
- memcpy (pFoo, _pBuf, SIZEOF (_pexType)); \
- DOEXTRACT (_pexType, pFoo, _foo, _fpConvert, _fpFormat); \
- _pBuf += SIZEOF (_pexType); \
-}
-
-#define EXTRACT_LISTOF_FOOFP(_pexType, _count, _pBuf, _fooList, _fpConvert, _fpFormat) \
-{ \
- int _i; \
- _pexType tFoo; \
- _pexType *pFoo = &tFoo; \
- for (_i = 0; _i < (int) _count; _i++) \
- { \
- memcpy (pFoo, _pBuf, SIZEOF (_pexType)); \
- DOEXTRACT (_pexType, pFoo, _fooList[_i], _fpConvert, _fpFormat); \
- _pBuf += SIZEOF (_pexType); \
- } \
-}
-
-#endif /* WORD64 */
-
-
-/*
- * NPC SUBVOLUME
- */
-
-#define EXTRACT_NPC_SUBVOLUME(_pBuf, _volume, _fpConvert, _fpFormat) \
- EXTRACT_FOOFP (pexNpcSubvolume, _pBuf, _volume, _fpConvert, _fpFormat)
-
-#define DOEXTRACT_pexNpcSubvolume(_src, _dst, _fpConvert, _fpFormat) \
- if (_fpConvert) \
- { \
- FP_CONVERT_NTOH (_src->xmin, _dst.min.x, _fpFormat); \
- FP_CONVERT_NTOH (_src->ymin, _dst.min.y, _fpFormat); \
- FP_CONVERT_NTOH (_src->zmin, _dst.min.z, _fpFormat); \
- FP_CONVERT_NTOH (_src->xmax, _dst.max.x, _fpFormat); \
- FP_CONVERT_NTOH (_src->ymax, _dst.max.y, _fpFormat); \
- FP_CONVERT_NTOH (_src->zmax, _dst.max.z, _fpFormat); \
- } \
- else \
- { \
- _dst.min.x = _src->xmin; \
- _dst.min.y = _src->ymin; \
- _dst.min.z = _src->zmin; \
- _dst.max.x = _src->xmax; \
- _dst.max.y = _src->ymax; \
- _dst.max.z = _src->zmax; \
- }
-
-
-/*
- * VIEWPORT
- */
-
-#define EXTRACT_VIEWPORT(_pBuf, _viewport, _fpConvert, _fpFormat) \
- EXTRACT_FOOFP (pexViewport, _pBuf, _viewport, _fpConvert, _fpFormat)
-
-#define DOEXTRACT_pexViewport(_src, _dst, _fpConvert, _fpFormat) \
- _dst.min.x = _src->xmin; \
- _dst.min.y = _src->ymin; \
- _dst.max.x = _src->xmax; \
- _dst.max.y = _src->ymax; \
- _dst.use_drawable = _src->useDrawable; \
-\
- if (_fpConvert) \
- { \
- FP_CONVERT_NTOH (_src->zmin, _dst.min.z, _fpFormat); \
- FP_CONVERT_NTOH (_src->zmax, _dst.max.z, _fpFormat); \
- } \
- else \
- { \
- _dst.min.z = _src->zmin; \
- _dst.max.z = _src->zmax; \
- }
-
-
-/*
- * COORD 4D
- */
-
-#define EXTRACT_COORD4D(_pBuf, _coord4D, _fpConvert, _fpFormat) \
- EXTRACT_FOOFP (pexCoord4D, _pBuf, _coord4D, _fpConvert, _fpFormat)
-
-
-#define EXTRACT_LISTOF_COORD4D(_count, _pBuf, _pList, _fpConvert, _fpFormat)\
- EXTRACT_LISTOF_FOOFP (pexCoord4D, _count, _pBuf, _pList, \
- _fpConvert, _fpFormat);
-
-
-#define DOEXTRACT_pexCoord4D(_src, _dst, _fpConvert, _fpFormat) \
- if (_fpConvert) \
- { \
- FP_CONVERT_NTOH (_src->x, _dst.x, _fpFormat); \
- FP_CONVERT_NTOH (_src->y, _dst.y, _fpFormat); \
- FP_CONVERT_NTOH (_src->z, _dst.z, _fpFormat); \
- FP_CONVERT_NTOH (_src->w, _dst.w, _fpFormat); \
- } \
- else \
- { \
- _dst.x = _src->x; \
- _dst.y = _src->y; \
- _dst.z = _src->z; \
- _dst.w = _src->w; \
- }
-
-
-/*
- * COORD 3D
- */
-
-#define EXTRACT_COORD3D(_pBuf, _coord3D, _fpConvert, _fpFormat) \
- EXTRACT_FOOFP (pexCoord3D, _pBuf, _coord3D, _fpConvert, _fpFormat)
-
-
-#define EXTRACT_LISTOF_COORD3D(_count, _pBuf, _pList, _fpConvert, _fpFormat)\
- EXTRACT_LISTOF_FOOFP (pexCoord3D, _count, _pBuf, _pList, \
- _fpConvert, _fpFormat);
-
-
-#define DOEXTRACT_pexCoord3D(_src, _dst, _fpConvert, _fpFormat) \
- if (_fpConvert) \
- { \
- FP_CONVERT_NTOH (_src->x, _dst.x, _fpFormat); \
- FP_CONVERT_NTOH (_src->y, _dst.y, _fpFormat); \
- FP_CONVERT_NTOH (_src->z, _dst.z, _fpFormat); \
- } \
- else \
- { \
- _dst.x = _src->x; \
- _dst.y = _src->y; \
- _dst.z = _src->z; \
- }
-
-
-/*
- * COORD 2D
- */
-
-#define EXTRACT_COORD2D(_pBuf, _coord2D, _fpConvert, _fpFormat) \
- EXTRACT_FOOFP (pexCoord2D, _pBuf, _coord2D, _fpConvert, _fpFormat)
-
-
-#define EXTRACT_LISTOF_COORD2D(_count, _pBuf, _pList, _fpConvert, _fpFormat)\
- EXTRACT_LISTOF_FOOFP (pexCoord2D, _count, _pBuf, _pList, \
- _fpConvert, _fpFormat);
-
-
-#define DOEXTRACT_pexCoord2D(_src, _dst, _fpConvert, _fpFormat) \
- if (_fpConvert) \
- { \
- FP_CONVERT_NTOH (_src->x, _dst.x, _fpFormat); \
- FP_CONVERT_NTOH (_src->y, _dst.y, _fpFormat); \
- } \
- else \
- { \
- _dst.x = _src->x; \
- _dst.y = _src->y; \
- }
-
-
-/*
- * VECTOR 3D
- */
-
-#define EXTRACT_VECTOR3D(_pBuf, _vector3D, _fpConvert, _fpFormat) \
- EXTRACT_FOOFP (pexVector3D, _pBuf, _vector3D, _fpConvert, _fpFormat)
-
-
-#define DOEXTRACT_pexVector3D(_src, _dst, _fpConvert, _fpFormat) \
- if (_fpConvert) \
- { \
- FP_CONVERT_NTOH (_src->x, _dst.x, _fpFormat); \
- FP_CONVERT_NTOH (_src->y, _dst.y, _fpFormat); \
- FP_CONVERT_NTOH (_src->z, _dst.z, _fpFormat); \
- } \
- else \
- { \
- _dst.x = _src->x; \
- _dst.y = _src->y; \
- _dst.z = _src->z; \
- }
-
-
-/*
- * VECTOR 2D
- */
-
-#define EXTRACT_VECTOR2D(_pBuf, _vector2D, _fpConvert, _fpFormat) \
- EXTRACT_FOOFP (pexVector2D, _pBuf, _vector2D, _fpConvert, _fpFormat)
-
-
-#define DOEXTRACT_pexVector2D(_src, _dst, _fpConvert, _fpFormat) \
- if (_fpConvert) \
- { \
- FP_CONVERT_NTOH (_src->x, _dst.x, _fpFormat); \
- FP_CONVERT_NTOH (_src->y, _dst.y, _fpFormat); \
- } \
- else \
- { \
- _dst.x = _src->x; \
- _dst.y = _src->y; \
- }
-
-
-/*
- * PSC LEVEL CURVES
- */
-
-#define EXTRACT_PSC_LEVELCURVES(_pBuf, _levCurv, _fpConvert, _fpFormat) \
- EXTRACT_FOOFP (pexPSC_LevelCurves, _pBuf, _levCurv, _fpConvert, _fpFormat)
-
-
-#define DOEXTRACT_pexPSC_LevelCurves(_src, _dst, _fpConvert, _fpFormat) \
- if (_fpConvert) \
- { \
- FP_CONVERT_NTOH (_src->origin_x, _dst.origin.x, _fpFormat); \
- FP_CONVERT_NTOH (_src->origin_y, _dst.origin.y, _fpFormat); \
- FP_CONVERT_NTOH (_src->origin_z, _dst.origin.z, _fpFormat); \
- FP_CONVERT_NTOH (_src->direction_x, _dst.direction.x, _fpFormat); \
- FP_CONVERT_NTOH (_src->direction_y, _dst.direction.y, _fpFormat); \
- FP_CONVERT_NTOH (_src->direction_z, _dst.direction.z, _fpFormat); \
- } \
- else \
- { \
- _dst.origin.x = _src->origin_x; \
- _dst.origin.y = _src->origin_y; \
- _dst.origin.z = _src->origin_z; \
- _dst.direction.x = _src->direction_x; \
- _dst.direction.y = _src->direction_y; \
- _dst.direction.z = _src->direction_z; \
- } \
- _dst.count = _src->numberIntersections;
-
-
-/*
- * REFLECTION ATTRIBUTES
- */
-
-#define EXTRACT_REFLECTION_ATTR(_pBuf, _reflAttr, _fpConvert, _fpFormat) \
- EXTRACT_FOOFP (pexReflectionAttr, _pBuf, _reflAttr, _fpConvert, _fpFormat)\
- EXTRACT_COLOR_VAL (_pBuf, _reflAttr.specular_color.type, \
- _reflAttr.specular_color.value, _fpConvert, _fpFormat)
-
-
-#define DOEXTRACT_pexReflectionAttr(_src, _dst, _fpConvert, _fpFormat) \
- if (_fpConvert) \
- { \
- FP_CONVERT_NTOH (_src->ambient, _dst.ambient, _fpFormat); \
- FP_CONVERT_NTOH (_src->diffuse, _dst.diffuse, _fpFormat); \
- FP_CONVERT_NTOH (_src->specular, _dst.specular, _fpFormat); \
- FP_CONVERT_NTOH (_src->specularConc, _dst.specular_conc, _fpFormat); \
- FP_CONVERT_NTOH (_src->transmission, _dst.transmission, _fpFormat); \
- } \
- else \
- { \
- _dst.ambient = _src->ambient; \
- _dst.diffuse = _src->diffuse; \
- _dst.specular = _src->specular; \
- _dst.specular_conc = _src->specularConc; \
- _dst.transmission = _src->transmission; \
- } \
- _dst.specular_color.type = _src->specular_colorType;
-
-
-/*
- * List of HALF SPACE
- */
-
-#define EXTRACT_LISTOF_HALFSPACE3D(_count, _pBuf, _pList, _fpConvert, _fpFormat)\
- EXTRACT_LISTOF_FOOFP (pexHalfSpace, _count, _pBuf, _pList, \
- _fpConvert, _fpFormat);
-
-#define DOEXTRACT_pexHalfSpace(_src, _dst, _fpConvert, _fpFormat) \
- if (_fpConvert) \
- { \
- FP_CONVERT_NTOH (_src->point_x, _dst.point.x, _fpFormat); \
- FP_CONVERT_NTOH (_src->point_y, _dst.point.y, _fpFormat); \
- FP_CONVERT_NTOH (_src->point_z, _dst.point.z, _fpFormat); \
- FP_CONVERT_NTOH (_src->vector_x, _dst.vector.x, _fpFormat); \
- FP_CONVERT_NTOH (_src->vector_y, _dst.vector.y, _fpFormat); \
- FP_CONVERT_NTOH (_src->vector_z, _dst.vector.z, _fpFormat); \
- } \
- else \
- { \
- _dst.point.x = _src->point_x; \
- _dst.point.y = _src->point_y; \
- _dst.point.z = _src->point_z; \
- _dst.vector.x = _src->vector_x; \
- _dst.vector.y = _src->vector_y; \
- _dst.vector.z = _src->vector_z; \
- }
-
-#define EXTRACT_LISTOF_HALFSPACE2D(_count, _pBuf, _pList, _fpConvert, _fpFormat)\
- EXTRACT_LISTOF_FOOFP (pexHalfSpace2D, _count, _pBuf, _pList, \
- _fpConvert, _fpFormat);
-
-#define DOEXTRACT_pexHalfSpace2D(_src, _dst, _fpConvert, _fpFormat) \
- if (_fpConvert) \
- { \
- FP_CONVERT_NTOH (_src->point_x, _dst.point.x, _fpFormat); \
- FP_CONVERT_NTOH (_src->point_y, _dst.point.y, _fpFormat); \
- FP_CONVERT_NTOH (_src->vector_x, _dst.vector.x, _fpFormat); \
- FP_CONVERT_NTOH (_src->vector_y, _dst.vector.y, _fpFormat); \
- } \
- else \
- { \
- _dst.point.x = _src->point_x; \
- _dst.point.y = _src->point_y; \
- _dst.vector.x = _src->vector_x; \
- _dst.vector.y = _src->vector_y; \
- }
-
-
-/*
- * List of DEVICE COORD
- */
-
-#define EXTRACT_LISTOF_DEVCOORD(_count, _pBuf, _pList, _fpConvert, _fpFormat) \
- EXTRACT_LISTOF_FOOFP (pexDeviceCoord, _count, _pBuf, _pList, \
- _fpConvert, _fpFormat)
-
-#define DOEXTRACT_pexDeviceCoord(_src, _dst, _fpConvert, _fpFormat) \
- _dst.x = _src->x; \
- _dst.y = _src->y; \
- if (_fpConvert) \
- { \
- FP_CONVERT_NTOH (_src->z, _dst.z, _fpFormat); \
- } \
- else \
- _dst.z = _src->z;
-
-
-/*
- * List of EXTENT INFO
- */
-
-#define EXTRACT_LISTOF_EXTENT_INFO(_count, _pBuf, _pList, _fpConvert, _fpFormat) \
- EXTRACT_LISTOF_FOOFP (pexExtentInfo, _count, _pBuf, _pList, \
- _fpConvert, _fpFormat)
-
-
-#define DOEXTRACT_pexExtentInfo(_src, _dst, _fpConvert, _fpFormat) \
- if (_fpConvert) \
- { \
- FP_CONVERT_NTOH (_src->lowerLeft_x, _dst.lower_left.x, _fpFormat); \
- FP_CONVERT_NTOH (_src->lowerLeft_y, _dst.lower_left.y, _fpFormat); \
- FP_CONVERT_NTOH (_src->upperRight_x, _dst.upper_right.x, _fpFormat); \
- FP_CONVERT_NTOH (_src->upperRight_y, _dst.upper_right.y, _fpFormat); \
- FP_CONVERT_NTOH (_src->concatpoint_x, _dst.concat_point.x, _fpFormat);\
- FP_CONVERT_NTOH (_src->concatpoint_y, _dst.concat_point.y, _fpFormat);\
- } \
- else \
- { \
- _dst.lower_left.x = _src->lowerLeft_x; \
- _dst.lower_left.y = _src->lowerLeft_y; \
- _dst.upper_right.x = _src->upperRight_x; \
- _dst.upper_right.y = _src->upperRight_y; \
- _dst.concat_point.x = _src->concatpoint_x; \
- _dst.concat_point.y = _src->concatpoint_y; \
- }
-
-
-/*
- * List of POSTED STRUCS
- */
-
-#define EXTRACT_LISTOF_POSTED_STRUCS(_count, _pBuf, _pList, _fpConvert, _fpFormat) \
- EXTRACT_LISTOF_FOOFP (pexStructureInfo, _count, _pBuf, _pList, \
- _fpConvert, _fpFormat)
-
-#define DOEXTRACT_pexStructureInfo(_src, _dst, _fpConvert, _fpFormat) \
- _dst.sid = _src->sid; \
- if (_fpConvert) \
- { \
- FP_CONVERT_NTOH (_src->priority, _dst.priority, _fpFormat); \
- } \
- else \
- _dst.priority = _src->priority;
-
-
-/* ------------------------------------------------------------------------ */
-/* COLOR VALUE and COLOR SPECIFIER */
-/* ------------------------------------------------------------------------ */
-
-#define EXTRACT_COLOR_VAL(_pBuf, _colType, _colVal, _fpConvert, _fpFormat) \
-{ \
- if (!_fpConvert) \
- { \
- int sizeColor = GetColorSize (_colType); \
- memcpy (&(_colVal), _pBuf, sizeColor); \
- _pBuf += sizeColor; \
- } \
- else \
- { \
- switch (_colType) \
- { \
- case PEXColorTypeIndexed: \
-\
- EXTRACT_CARD16 (_pBuf, _colVal.indexed.index); \
- _pBuf += 2; \
- break; \
-\
- case PEXColorTypeRGB: \
- case PEXColorTypeCIE: \
- case PEXColorTypeHSV: \
- case PEXColorTypeHLS: \
-\
- FP_CONVERT_NTOH_BUFF (_pBuf, _colVal.rgb.red, _fpFormat); \
- _pBuf += SIZEOF (float); \
- FP_CONVERT_NTOH_BUFF (_pBuf, _colVal.rgb.green, _fpFormat); \
- _pBuf += SIZEOF (float); \
- FP_CONVERT_NTOH_BUFF (_pBuf, _colVal.rgb.blue, _fpFormat); \
- _pBuf += SIZEOF (float); \
- break; \
-\
- case PEXColorTypeRGB8: \
-\
- memcpy (&(_colVal.rgb8), _pBuf, 4); \
- _pBuf += 4; \
- break; \
-\
- case PEXColorTypeRGB16: \
-\
- EXTRACT_CARD16 (_pBuf, _colVal.rgb16.red); \
- EXTRACT_CARD16 (_pBuf, _colVal.rgb16.green); \
- EXTRACT_CARD16 (_pBuf, _colVal.rgb16.blue); \
- _pBuf += 2; \
- break; \
- } \
- } \
-}
-
-
-#define EXTRACT_LISTOF_COLOR_VAL(_count, _pBuf, _colType, _pList, _fpConvert, _fpFormat) \
-{ \
- if (!_fpConvert) \
- { \
- int sizeColor = GetColorSize (_colType); \
- memcpy (_pList.indexed, _pBuf, _count * sizeColor); \
- _pBuf += (_count * sizeColor); \
- } \
- else \
- { \
- _PEXExtractListOfColor (_count, &(_pBuf), _colType, \
- _pList, _fpFormat); \
- } \
-}
-
-
-#define EXTRACT_COLOR_SPEC(_pBuf, _colSpec, _fpConvert, _fpFormat) \
-{ \
- EXTRACT_INT16 (_pBuf, _colSpec.type); \
- _pBuf += 2; \
- EXTRACT_COLOR_VAL (_pBuf, _colSpec.type, _colSpec.value, \
- _fpConvert, _fpFormat); \
-}
-
-
-#define EXTRACT_LISTOF_COLOR_SPEC(_count, _pBuf, _pList, _fpConvert, _fpFormat) \
-{ \
- int _i; \
- for (_i = 0; _i < _count; _i++) \
- { \
- EXTRACT_COLOR_SPEC (_pBuf, _pList[_i], _fpConvert, _fpFormat); \
- } \
-}
-
-
-/* ------------------------------------------------------------------------ */
-/* FONT Info */
-/* ------------------------------------------------------------------------ */
-
-#ifndef WORD64
-
-#define EXTRACT_FONTINFO(_pBuf, _fontInfo) \
-{ \
- pexFontInfo *pInfo = (pexFontInfo *) _pBuf; \
- _fontInfo.first_glyph = pInfo->firstGlyph; \
- _fontInfo.last_glyph = pInfo->lastGlyph; \
- _fontInfo.default_glyph = pInfo->defaultGlyph; \
- _fontInfo.all_exist = pInfo->allExist; \
- _fontInfo.stroke = pInfo->strokeFont; \
- _fontInfo.count = pInfo->numProps; \
- _pBuf += SIZEOF (pexFontInfo); \
-}
-
-#else /* WORD64 */
-
-#define EXTRACT_FONTINFO(_pBuf, _fontInfo) \
-{ \
- pexFontInfo tInfo; \
- memcpy (&tInfo, _pBuf, SIZEOF (pexFontInfo)); \
- _fontInfo.first_glyph = tInfo.firstGlyph; \
- _fontInfo.last_glyph = tInfo.lastGlyph; \
- _fontInfo.default_glyph = tInfo.defaultGlyph; \
- _fontInfo.all_exist = tInfo.allExist; \
- _fontInfo.stroke = tInfo.strokeFont; \
- _fontInfo.count = tInfo.numProps; \
- _pBuf += SIZEOF (pexFontInfo); \
-}
-
-#endif /* WORD64 */
-
-
-/* ------------------------------------------------------------------------ */
-/* List of STRING */
-/* ------------------------------------------------------------------------ */
-
-#ifndef WORD64
-
-#define EXTRACT_LISTOF_STRING(_count, _pBuf, _pList) \
-{ \
- unsigned int length; \
- int _i; \
-\
- for (_i = 0; _i < _count; _i++) \
- { \
- pexString *repStrings = (pexString *) _pBuf; \
- length = repStrings->length; \
- _pList[_i] = (char *) Xmalloc (length + 1); \
- memcpy (_pList[_i], _pBuf + SIZEOF (pexString), length); \
- _pList[_i][length] = '\0'; \
- _pBuf += PADDED_BYTES (SIZEOF (pexString) + length); \
- } \
-}
-
-#else /* WORD64 */
-
-#define EXTRACT_LISTOF_STRING(_count, _pBuf, _pList) \
-{ \
- pexString tString; \
- unsigned int length; \
- int _i; \
-\
- for (_i = 0; _i < _count; _i++) \
- { \
- memcpy (&tString, _pBuf, SIZEOF (pexString)); \
- length = tString.length; \
- _pList[_i] = (char *) Xmalloc (length + 1); \
- memcpy (_pList[_i], _pBuf + SIZEOF (pexString), length); \
- _pList[_i][length] = '\0'; \
- _pBuf += PADDED_BYTES (SIZEOF (pexString) + length); \
- } \
-}
-
-#endif
-
-
-/* ------------------------------------------------------------------------ */
-/* FACET data */
-/* ------------------------------------------------------------------------ */
-
-#define EXTRACT_FACET(_pBuf, _colorType, _facetAttr, _facetData, _fpConvert, _fpFormat) \
-{ \
- if (_fpConvert) \
- { \
- _PEXExtractFacet (&(_pBuf), _colorType, _facetAttr, \
- &_facetData, _fpFormat); \
- } \
- else \
- { \
- int bytes = GetClientFacetSize (_colorType, _facetAttr); \
- memcpy (&_facetData, _pBuf, bytes); \
- _pBuf += bytes; \
- } \
-}
-
-
-#define EXTRACT_LISTOF_FACET(_count, _pBuf, _facetSize, _colorType, _facetAttr, _facetData, _fpConvert, _fpFormat) \
-{ \
- if (_fpConvert) \
- { \
- _PEXExtractListOfFacet (_count, &(_pBuf), _colorType, \
- _facetAttr, _facetData, _fpFormat); \
- } \
- else \
- { \
- int bytes = _count * _facetSize; \
- memcpy (_facetData.index, _pBuf, bytes); \
- _pBuf += bytes; \
- } \
-}
-
-
-/* ------------------------------------------------------------------------ */
-/* VERTEX data */
-/* ------------------------------------------------------------------------ */
-
-#define EXTRACT_LISTOF_VERTEX(_count, _pBuf, _vertexSize, _colorType, _vertexAttr, _vertexData, _fpConvert, _fpFormat) \
-{ \
- if (_fpConvert) \
- { \
- _PEXExtractListOfVertex (_count, &(_pBuf), _colorType, \
- _vertexAttr, _vertexData, _fpFormat); \
- } \
- else \
- { \
- int bytes = _count * _vertexSize; \
- memcpy (_vertexData.no_data, _pBuf, bytes); \
- _pBuf += bytes; \
- } \
-}
-
-
-/* ------------------------------------------------------------------------ */
-/* PICK RECORD */
-/* ------------------------------------------------------------------------ */
-
-#ifndef WORD64
-
-#define EXTRACT_PICK_RECORD(_pBuf, _type, _numBytes, _pickRec, _fpConvert, _fpFormat) \
-{ \
- if (_fpConvert) \
- { \
- DOEXTRACT_PICK_RECORD (_pBuf, _type, _numBytes, _pickRec, \
- _fpConvert, _fpFormat); \
- } \
- else \
- { \
- memcpy (&(_pickRec), _pBuf, _numBytes); \
- } \
- _pBuf += _numBytes; \
-}
-
-#else /* WORD64 */
-
-#define EXTRACT_PICK_RECORD(_pBuf, _type, _numBytes, _pickRec, _fpConvert, _fpFormat) \
-{ \
- DOEXTRACT_PICK_RECORD (_pBuf, _type, _numBytes, _pickRec, _fpConvert, _fpFormat);\
- _pBuf += _numBytes; \
-}
-
-#endif /* WORD64 */
-
-
-#define DOEXTRACT_PICK_RECORD(_pBuf, _type, _numBytes, _pickRec, _fpConvert, _fpFormat) \
-{ \
- pexPD_DC_HitBox dc_box; \
- pexPD_NPC_HitVolume npc_vol; \
-\
- if (_type == PEXPickDeviceDCHitBox) \
- { \
- memcpy (&dc_box, _pBuf, _numBytes); \
- _pickRec.box.position.x = dc_box.position_x; \
- _pickRec.box.position.y = dc_box.position_y; \
- if (_fpConvert) \
- { \
- FP_CONVERT_NTOH (dc_box.distance, \
- _pickRec.box.distance, fpFormat); \
- } \
- else \
- _pickRec.box.distance = dc_box.distance; \
- } \
- else if (_type == PEXPickDeviceNPCHitVolume) \
- { \
- memcpy (&npc_vol, _pBuf, _numBytes); \
- if (_fpConvert) \
- { \
- FP_CONVERT_NTOH (npc_vol.xmin, _pickRec.volume.min.x, _fpFormat);\
- FP_CONVERT_NTOH (npc_vol.ymin, _pickRec.volume.min.y, _fpFormat);\
- FP_CONVERT_NTOH (npc_vol.zmin, _pickRec.volume.min.z, _fpFormat);\
- FP_CONVERT_NTOH (npc_vol.xmax, _pickRec.volume.max.x, _fpFormat);\
- FP_CONVERT_NTOH (npc_vol.ymax, _pickRec.volume.max.y, _fpFormat);\
- FP_CONVERT_NTOH (npc_vol.zmax, _pickRec.volume.max.z, _fpFormat);\
- } \
- else \
- { \
- _pickRec.volume.min.x = npc_vol.xmin; \
- _pickRec.volume.min.y = npc_vol.ymin; \
- _pickRec.volume.min.z = npc_vol.zmin; \
- _pickRec.volume.max.x = npc_vol.xmax; \
- _pickRec.volume.max.y = npc_vol.ymax; \
- _pickRec.volume.max.z = npc_vol.zmax; \
- } \
- } \
-}
-
-
-/* ------------------------------------------------------------------------ */
-/* Mono Encoded Strings */
-/* ------------------------------------------------------------------------ */
-
-#define EXTRACT_MONOENCODING(_pBuf, _enc) \
- EXTRACT_FOO (pexMonoEncoding, _pBuf, _enc)
-
-#define GET_TEMP_pexMonoEncoding(_src, _dst) \
- _dst.character_set = _src.characterSet; \
- _dst.character_set_width = _src.characterSetWidth; \
- _dst.encoding_state = _src.encodingState; \
- _dst.length = _src.numChars;
-
-#define EXTRACT_LISTOF_MONOENCODING(_count, _pBuf, _pList) \
-{ \
- PEXEncodedTextData *nextString; \
- unsigned size; \
- int _i; \
-\
- nextString = _pList; \
- for (_i = 0; _i < (int) _count; _i++, nextString++) \
- { \
- EXTRACT_MONOENCODING (_pBuf, (*nextString)); \
-\
- if (nextString->character_set_width == PEXCSLong) \
- size = nextString->length * SIZEOF (long); \
- else if (nextString->character_set_width == PEXCSShort) \
- size = nextString->length * SIZEOF (short); \
- else /* nextString->character_set_width == PEXCSByte) */ \
- size = nextString->length; \
-\
- nextString->ch = (char *) Xmalloc (size); \
-\
- memcpy (nextString->ch, _pBuf, size); \
- _pBuf += PADDED_BYTES (size); \
- } \
-}
-
-