52 lines
1.9 KiB
C
52 lines
1.9 KiB
C
#ifndef __PIPELN_H_
|
|
#define __PIPELN_H_
|
|
/*==========================================================================;
|
|
*
|
|
* Copyright (C) 1999 Microsoft Corporation. All Rights Reserved.
|
|
*
|
|
* File: pipeln.h
|
|
* Content: Common definitions between Microsoft PSGP and the front-end
|
|
*
|
|
***************************************************************************/
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Prototype of a function to copy data from input vertex stream to an input
|
|
// register
|
|
typedef void (*PFN_D3DCOPYELEMENT)(LPVOID pInputStream,
|
|
UINT InputStreamStride,
|
|
UINT count,
|
|
VVM_WORD * pVertexRegister);
|
|
//---------------------------------------------------------------------
|
|
inline void ComputeOutputVertexOffsets(LPD3DFE_PROCESSVERTICES pv)
|
|
{
|
|
DWORD i = 4*sizeof(D3DVALUE);
|
|
pv->pointSizeOffsetOut = i;
|
|
if (pv->dwVIDOut & D3DFVF_PSIZE)
|
|
i += sizeof(DWORD);
|
|
pv->diffuseOffsetOut = i;
|
|
if (pv->dwVIDOut & D3DFVF_DIFFUSE)
|
|
i += sizeof(DWORD);
|
|
pv->specularOffsetOut = i;
|
|
if (pv->dwVIDOut & D3DFVF_SPECULAR)
|
|
i += sizeof(DWORD);
|
|
pv->fogOffsetOut = i;
|
|
if (pv->dwVIDOut & D3DFVF_FOG)
|
|
i += sizeof(DWORD);
|
|
pv->texOffsetOut = i;
|
|
}
|
|
//----------------------------------------------------------------------
|
|
inline DWORD MakeTexTransformFuncIndex(DWORD dwNumInpTexCoord, DWORD dwNumOutTexCoord)
|
|
{
|
|
DDASSERT(dwNumInpTexCoord <= 4 && dwNumOutTexCoord <= 4);
|
|
return (dwNumInpTexCoord - 1) + ((dwNumOutTexCoord - 1) << 2);
|
|
}
|
|
//----------------------------------------------------------------------
|
|
// Returns TRUE if the token is instruction token, FALSE if the token is
|
|
// an operand token
|
|
inline BOOL IsInstructionToken(DWORD token)
|
|
{
|
|
return (token & 0x80000000) == 0;
|
|
}
|
|
|
|
#endif // __PIPELN_H_
|