Move SetCxbxVertexShader to XbVertexShader.cpp
This commit is contained in:
parent
ab6bb98758
commit
932398547e
|
@ -969,38 +969,6 @@ IDirect3DResource *GetHostResource(XTL::X_D3DResource *pXboxResource, DWORD D3DU
|
|||
return it->second.pHostResource;
|
||||
}
|
||||
|
||||
void SetCxbxVertexShader(CxbxVertexShader* pCxbxVertexShader) {
|
||||
|
||||
LOG_INIT
|
||||
|
||||
HRESULT hRet;
|
||||
|
||||
// Get vertex shader if we have a key
|
||||
auto pHostShader = pCxbxVertexShader->VertexShaderKey
|
||||
? g_VertexShaderSource.GetShader(pCxbxVertexShader->VertexShaderKey)
|
||||
: nullptr;
|
||||
|
||||
// Set vertex shader
|
||||
hRet = g_pD3DDevice->SetVertexShader(pHostShader);
|
||||
DEBUG_D3DRESULT(hRet, "g_pD3DDevice->SetVertexShader");
|
||||
|
||||
// Set vertex declaration
|
||||
hRet = g_pD3DDevice->SetVertexDeclaration(pCxbxVertexShader->Declaration.pHostVertexDeclaration);
|
||||
DEBUG_D3DRESULT(hRet, "g_pD3DDevice->SetVertexDeclaration");
|
||||
|
||||
// Set vertex shader constants if necessary
|
||||
if (pHostShader) {
|
||||
// Titles can specify default values for registers via calls like SetVertexData4f
|
||||
// HLSL shaders need to know whether to use vertex data or default vertex shader values
|
||||
// Any register not in the vertex declaration should be set to the default value
|
||||
float vertexDefaultFlags[16];
|
||||
for (int i = 0; i < 16; i++) {
|
||||
vertexDefaultFlags[i] = pCxbxVertexShader->Declaration.vRegisterInDeclaration[i] ? 0.0f : 1.0f;
|
||||
}
|
||||
g_pD3DDevice->SetVertexShaderConstantF(CXBX_D3DVS_CONSTREG_VREGDEFAULTS_FLAG_BASE, vertexDefaultFlags, 4);
|
||||
}
|
||||
}
|
||||
|
||||
// Forward declaration of CxbxGetPixelContainerMeasures to prevent
|
||||
// polluting the diff too much by reshuffling functions around
|
||||
VOID CxbxGetPixelContainerMeasures
|
||||
|
|
|
@ -1301,6 +1301,38 @@ void SetCxbxVertexShader(DWORD XboxVertexShaderHandle, CxbxVertexShader* shader)
|
|||
g_CxbxVertexShaders[XboxVertexShaderHandle] = shader;
|
||||
}
|
||||
|
||||
void SetCxbxVertexShader(CxbxVertexShader* pCxbxVertexShader)
|
||||
{
|
||||
LOG_INIT
|
||||
|
||||
HRESULT hRet;
|
||||
|
||||
// Get vertex shader if we have a key
|
||||
auto pHostShader = pCxbxVertexShader->VertexShaderKey
|
||||
? g_VertexShaderSource.GetShader(pCxbxVertexShader->VertexShaderKey)
|
||||
: nullptr;
|
||||
|
||||
// Set vertex shader
|
||||
hRet = g_pD3DDevice->SetVertexShader(pHostShader);
|
||||
DEBUG_D3DRESULT(hRet, "g_pD3DDevice->SetVertexShader");
|
||||
|
||||
// Set vertex declaration
|
||||
hRet = g_pD3DDevice->SetVertexDeclaration(pCxbxVertexShader->Declaration.pHostVertexDeclaration);
|
||||
DEBUG_D3DRESULT(hRet, "g_pD3DDevice->SetVertexDeclaration");
|
||||
|
||||
// Set vertex shader constants if necessary
|
||||
if (pHostShader) {
|
||||
// Titles can specify default values for registers via calls like SetVertexData4f
|
||||
// HLSL shaders need to know whether to use vertex data or default vertex shader values
|
||||
// Any register not in the vertex declaration should be set to the default value
|
||||
float vertexDefaultFlags[16];
|
||||
for (int i = 0; i < 16; i++) {
|
||||
vertexDefaultFlags[i] = pCxbxVertexShader->Declaration.vRegisterInDeclaration[i] ? 0.0f : 1.0f;
|
||||
}
|
||||
g_pD3DDevice->SetVertexShaderConstantF(CXBX_D3DVS_CONSTREG_VREGDEFAULTS_FLAG_BASE, vertexDefaultFlags, 4);
|
||||
}
|
||||
}
|
||||
|
||||
void CxbxImpl_SetVertexShaderInput
|
||||
(
|
||||
DWORD Handle,
|
||||
|
|
|
@ -236,7 +236,7 @@ inline XTL::X_D3DVertexShader *VshHandleToXboxVertexShader(DWORD Handle) { retur
|
|||
extern DWORD* GetCxbxVertexShaderSlotPtr(const DWORD SlotIndexAddress);
|
||||
extern CxbxVertexShader* GetCxbxVertexShader(DWORD XboxVertexShaderHandle);
|
||||
extern void SetCxbxVertexShader(DWORD XboxVertexShaderHandle, CxbxVertexShader* shader);
|
||||
extern void SetCxbxVertexShader(CxbxVertexShader* pCxbxVertexShader); // Implemented in Direct3D9.cpp (for now)
|
||||
extern void SetCxbxVertexShader(CxbxVertexShader* pCxbxVertexShader);
|
||||
extern void CxbxImpl_LoadVertexShader(DWORD Handle, DWORD Address);
|
||||
extern void CxbxImpl_SetVertexShader(DWORD Handle);
|
||||
extern void CxbxImpl_SelectVertexShaderDirect(XTL::X_VERTEXATTRIBUTEFORMAT* pVAF, DWORD Address);
|
||||
|
|
Loading…
Reference in New Issue