54 lines
1.7 KiB
C
54 lines
1.7 KiB
C
|
/*============================ ==============================================;
|
||
|
*
|
||
|
* Copyright (C) 1997 Microsoft Corporation. All Rights Reserved.
|
||
|
*
|
||
|
* File: clipper.h
|
||
|
* Content: Clipper definitions
|
||
|
*
|
||
|
***************************************************************************/
|
||
|
#ifndef _CLIPPER_H_
|
||
|
#define _CLIPPER_H_
|
||
|
|
||
|
//---------------------------------------------------------------------
|
||
|
// Bit numbers for each clip flag
|
||
|
//
|
||
|
#define D3DCS_LEFTBIT 1
|
||
|
#define D3DCS_RIGHTBIT 2
|
||
|
#define D3DCS_TOPBIT 3
|
||
|
#define D3DCS_BOTTOMBIT 4
|
||
|
#define D3DCS_FRONTBIT 5
|
||
|
#define D3DCS_BACKBIT 6
|
||
|
#define D3DCLIPGB_LEFTBIT 13
|
||
|
#define D3DCLIPGB_RIGHTBIT 14
|
||
|
#define D3DCLIPGB_TOPBIT 15
|
||
|
#define D3DCLIPGB_BOTTOMBIT 16
|
||
|
|
||
|
//---------------------------------------------------------------------
|
||
|
// Make clip vertex from D3D vertex
|
||
|
//
|
||
|
// device - CD3DHal *
|
||
|
// pp1 - clipVertex
|
||
|
// p1 - TL vertex
|
||
|
//
|
||
|
void MAKE_CLIP_VERTEX_FVF(D3DFE_PROCESSVERTICES *pv, ClipVertex& pp1, BYTE* p1,
|
||
|
DWORD clipFlag, BOOL transformed);
|
||
|
//---------------------------------------------------------------------
|
||
|
// Make TL vertex from clip vertex
|
||
|
//
|
||
|
// device - CD3DHal *
|
||
|
// in - clipVertex
|
||
|
// out - TL vertex
|
||
|
//
|
||
|
inline void
|
||
|
MAKE_TL_VERTEX_FVF(D3DFE_PROCESSVERTICES *pv, BYTE* out, ClipVertex* in)
|
||
|
{
|
||
|
*(D3DVECTORH*)out = *(D3DVECTORH*)&(in)->sx;
|
||
|
if (pv->dwVIDOut & D3DFVF_DIFFUSE)
|
||
|
*(DWORD*)&out[pv->diffuseOffsetOut] = (in)->color;
|
||
|
if (pv->dwVIDOut & D3DFVF_SPECULAR)
|
||
|
*(DWORD*)&out[pv->specularOffsetOut] = (in)->specular;
|
||
|
memcpy(&out[pv->texOffsetOut], in->tex, pv->dwTextureCoordSizeTotal);
|
||
|
}
|
||
|
|
||
|
#endif // _CLIPPER_H_
|