Moved a few functions to a better suitable location, and marked a few class functions 'static'
This commit is contained in:
parent
18a27a64de
commit
ebbb8e961f
|
@ -657,14 +657,36 @@ public:
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
#define D3DDECLUSAGE_UNSUPPORTED ((D3DDECLUSAGE)-1)
|
// ****************************************************************************
|
||||||
|
// * Vertex shader declaration recompiler
|
||||||
|
// ****************************************************************************
|
||||||
|
|
||||||
D3DDECLUSAGE Xb2PCRegisterType
|
extern D3DCAPS g_D3DCaps;
|
||||||
(
|
|
||||||
|
class XboxVertexDeclarationConverter
|
||||||
|
{
|
||||||
|
protected:
|
||||||
|
// Internal variables
|
||||||
|
CxbxVertexShaderInfo* pVertexShaderInfoToSet;
|
||||||
|
CxbxVertexShaderStreamInfo* pCurrentVertexShaderStreamInfo = nullptr;
|
||||||
|
DWORD hostTemporaryRegisterCount;
|
||||||
|
bool IsFixedFunction;
|
||||||
|
D3DVERTEXELEMENT* pRecompiled;
|
||||||
|
|
||||||
|
public:
|
||||||
|
// Output
|
||||||
|
DWORD XboxDeclarationCount;
|
||||||
|
DWORD HostDeclarationSize;
|
||||||
|
|
||||||
|
private:
|
||||||
|
#define D3DDECLUSAGE_UNSUPPORTED ((D3DDECLUSAGE)-1)
|
||||||
|
|
||||||
|
static D3DDECLUSAGE Xb2PCRegisterType
|
||||||
|
(
|
||||||
DWORD VertexRegister,
|
DWORD VertexRegister,
|
||||||
BYTE& PCUsageIndex
|
BYTE& PCUsageIndex
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
D3DDECLUSAGE PCRegisterType;
|
D3DDECLUSAGE PCRegisterType;
|
||||||
PCUsageIndex = 0;
|
PCUsageIndex = 0;
|
||||||
|
|
||||||
|
@ -718,10 +740,10 @@ D3DDECLUSAGE Xb2PCRegisterType
|
||||||
}
|
}
|
||||||
|
|
||||||
return PCRegisterType;
|
return PCRegisterType;
|
||||||
}
|
}
|
||||||
|
|
||||||
char* XboxVertexRegisterAsString(DWORD VertexRegister)
|
static char* XboxVertexRegisterAsString(DWORD VertexRegister)
|
||||||
{
|
{
|
||||||
switch (VertexRegister)
|
switch (VertexRegister)
|
||||||
{
|
{
|
||||||
case XTL::X_D3DVSDE_VERTEX: // -1
|
case XTL::X_D3DVSDE_VERTEX: // -1
|
||||||
|
@ -761,30 +783,8 @@ char* XboxVertexRegisterAsString(DWORD VertexRegister)
|
||||||
default:
|
default:
|
||||||
return "16 /* or higher, unknown register */";
|
return "16 /* or higher, unknown register */";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// ****************************************************************************
|
|
||||||
// * Vertex shader declaration recompiler
|
|
||||||
// ****************************************************************************
|
|
||||||
|
|
||||||
extern D3DCAPS g_D3DCaps;
|
|
||||||
|
|
||||||
class XboxVertexDeclarationConverter
|
|
||||||
{
|
|
||||||
protected:
|
|
||||||
// Internal variables
|
|
||||||
CxbxVertexShaderInfo* pVertexShaderInfoToSet;
|
|
||||||
CxbxVertexShaderStreamInfo* pCurrentVertexShaderStreamInfo = nullptr;
|
|
||||||
DWORD hostTemporaryRegisterCount;
|
|
||||||
bool IsFixedFunction;
|
|
||||||
D3DVERTEXELEMENT* pRecompiled;
|
|
||||||
|
|
||||||
public:
|
|
||||||
// Output
|
|
||||||
DWORD XboxDeclarationCount;
|
|
||||||
DWORD HostDeclarationSize;
|
|
||||||
|
|
||||||
private:
|
|
||||||
// VERTEX SHADER
|
// VERTEX SHADER
|
||||||
|
|
||||||
static DWORD VshGetDeclarationCount(DWORD *pXboxDeclaration)
|
static DWORD VshGetDeclarationCount(DWORD *pXboxDeclaration)
|
||||||
|
@ -808,13 +808,13 @@ private:
|
||||||
return (XboxToken & X_D3DVSD_STREAMNUMBERMASK) >> X_D3DVSD_STREAMNUMBERSHIFT;
|
return (XboxToken & X_D3DVSD_STREAMNUMBERMASK) >> X_D3DVSD_STREAMNUMBERSHIFT;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline DWORD VshGetVertexRegister(DWORD XboxToken)
|
static inline DWORD VshGetVertexRegister(DWORD XboxToken)
|
||||||
{
|
{
|
||||||
DWORD regNum = (XboxToken & X_D3DVSD_VERTEXREGMASK) >> X_D3DVSD_VERTEXREGSHIFT;
|
DWORD regNum = (XboxToken & X_D3DVSD_VERTEXREGMASK) >> X_D3DVSD_VERTEXREGSHIFT;
|
||||||
return regNum;
|
return regNum;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline DWORD VshGetVertexRegisterIn(DWORD XboxToken)
|
static inline DWORD VshGetVertexRegisterIn(DWORD XboxToken)
|
||||||
{
|
{
|
||||||
DWORD regNum = (XboxToken & X_D3DVSD_VERTEXREGINMASK) >> X_D3DVSD_VERTEXREGINSHIFT;
|
DWORD regNum = (XboxToken & X_D3DVSD_VERTEXREGINMASK) >> X_D3DVSD_VERTEXREGINSHIFT;
|
||||||
return regNum;
|
return regNum;
|
||||||
|
@ -1006,7 +1006,7 @@ private:
|
||||||
DbgVshPrintf("// NbrStreams: %d\n", iNumberOfVertexStreams);
|
DbgVshPrintf("// NbrStreams: %d\n", iNumberOfVertexStreams);
|
||||||
}
|
}
|
||||||
|
|
||||||
void VshConvertToken_NOP(DWORD *pXboxToken)
|
static void VshConvertToken_NOP(DWORD *pXboxToken)
|
||||||
{
|
{
|
||||||
if(*pXboxToken != X_D3DVSD_NOP())
|
if(*pXboxToken != X_D3DVSD_NOP())
|
||||||
{
|
{
|
||||||
|
@ -1014,7 +1014,7 @@ private:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
DWORD VshConvertToken_CONSTMEM(DWORD *pXboxToken)
|
static DWORD VshConvertToken_CONSTMEM(DWORD *pXboxToken)
|
||||||
{
|
{
|
||||||
// DWORD ConstantAddress = (*pXboxToken & X_D3DVSD_CONSTADDRESSMASK) >> X_D3DVSD_CONSTADDRESSSHIFT;
|
// DWORD ConstantAddress = (*pXboxToken & X_D3DVSD_CONSTADDRESSMASK) >> X_D3DVSD_CONSTADDRESSSHIFT;
|
||||||
DWORD Count = (*pXboxToken & X_D3DVSD_CONSTCOUNTMASK) >> X_D3DVSD_CONSTCOUNTSHIFT;
|
DWORD Count = (*pXboxToken & X_D3DVSD_CONSTCOUNTMASK) >> X_D3DVSD_CONSTCOUNTSHIFT;
|
||||||
|
@ -1411,7 +1411,7 @@ private:
|
||||||
return Step;
|
return Step;
|
||||||
}
|
}
|
||||||
|
|
||||||
DWORD* RemoveXboxDeclarationRedefinition(DWORD* pXboxDeclaration)
|
static DWORD* RemoveXboxDeclarationRedefinition(DWORD* pXboxDeclaration)
|
||||||
{
|
{
|
||||||
// Detect and remove register redefinitions by preprocessing the Xbox Vertex Declaration
|
// Detect and remove register redefinitions by preprocessing the Xbox Vertex Declaration
|
||||||
// Test Case: King Kong
|
// Test Case: King Kong
|
||||||
|
|
Loading…
Reference in New Issue