//=================================================================
//
// Copyright (c) Microsoft Corporation 1999 - All Rights Reserved.
//
//=================================================================

#ifndef _WRAPPERTYPES_H_
#define _WRAPPERTYPES_H_

//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
#define CLIP_SIDE_FRONT       0x00000001
#define CLIP_SIDE_BACK        0x00000002
#define CLIP_SIDE_LEFT        0x00000004
#define CLIP_SIDE_RIGHT       0x00000008
#define CLIP_SIDE_TOP         0x00000010
#define CLIP_SIDE_BOTTOM      0x00000020

#define CLIP_SIDE_MASK        0x0000003F

#define CLIPPED_FRONT         0x00000100
#define CLIPPED_BACK          0x00000200
#define CLIPPED_LEFT          0x00000400
#define CLIPPED_RIGHT         0x00000800
#define CLIPPED_TOP           0x00001000
#define CLIPPED_BOTTOM        0x00002000

#define CLIPPED_MASK          0x00003F00

//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------

//
// Note: the first 8 elements are the same as in the D3DTLVERTEX structure so
//       that a vertex of type GRFCLIPVERTEX can be passed into functions that
//       use D3DTLVERTEX types; however, this is not the case for functions
//       that use arrays of D3DTLVERTEX types.
//

typedef struct
{
    FLOAT sx;            // X screen coordinate (hx/hw)
    FLOAT sy;            // Y screen coordinate (hy/hw)
    FLOAT sz;            // Z screen coordinate (hz/hw)
    FLOAT rhw;           // Reciprocal of hw (1/hw)
    DWORD color;         // Vertex color
    DWORD specular;      // Vertex specular color
    FLOAT tu;            // U texture coordinate
    FLOAT tv;            // V texture coordinate
    DWORD dwFlags;       // Clip flags.
    FLOAT hx;            // X homogenous coordinate
    FLOAT hy;            // Y homogenous coordinate
    FLOAT hz;            // Z homogenous coordinate
    FLOAT hw;            // W homogenous coordinate
} GRFCLIPVERTEX;

#endif // _WRAPPER_TYPES_
