Tail's Head now renders in Sonic Heroes E3 Demo, Zapper is still broken..

This commit is contained in:
Luke Usher 2018-02-25 11:13:12 +00:00
parent 6c2c3d5fb2
commit 53998f41ed
1 changed files with 29 additions and 29 deletions

View File

@ -278,8 +278,7 @@ bool XTL::VertexPatcher::ApplyCachedStream(VertexPatchDesc *pPatchDesc,
pCalculateData = (void*)GetDataFromXboxResource(pOrigVertexBuffer);
}
// Use the cached stream length (which is a must for the UP stream)
uint32_t uiHash = XXHash32::hash((void *)pCalculateData, pCachedStream->uiLength, HASH_SEED);
uint32_t uiHash = XXHash32::hash((void *)pCalculateData, uiLength, HASH_SEED);
if(uiHash == pCachedStream->uiHash)
{
// Take a while longer to check
@ -342,22 +341,8 @@ bool XTL::VertexPatcher::ApplyCachedStream(VertexPatchDesc *pPatchDesc,
return bApplied;
}
UINT XTL::VertexPatcher::GetNbrStreams(VertexPatchDesc *pPatchDesc)
int CountActiveD3DStreams()
{
if(VshHandleIsVertexShader(pPatchDesc->hVertexShader))
{
VERTEX_DYNAMIC_PATCH *pDynamicPatch = VshGetVertexDynamicPatch(pPatchDesc->hVertexShader);
if(pDynamicPatch)
{
return pDynamicPatch->NbrStreams;
}
else
{
// Draw..Up always have one stream
if (pPatchDesc->pVertexStreamZeroData != nullptr) {
return 1;
}
int lastStreamIndex;
for (int i = 0; i < 16; i++) {
if (g_D3DStreams[i] != nullptr) {
@ -367,12 +352,27 @@ UINT XTL::VertexPatcher::GetNbrStreams(VertexPatchDesc *pPatchDesc)
return lastStreamIndex + 1;
}
}
else if(pPatchDesc->hVertexShader)
UINT XTL::VertexPatcher::GetNbrStreams(VertexPatchDesc *pPatchDesc)
{
// Draw..Up always have one stream
if (pPatchDesc->pVertexStreamZeroData != nullptr) {
return 1;
}
if(VshHandleIsVertexShader(pPatchDesc->hVertexShader)) {
VERTEX_DYNAMIC_PATCH *pDynamicPatch = VshGetVertexDynamicPatch(pPatchDesc->hVertexShader);
if (pDynamicPatch) {
return pDynamicPatch->NbrStreams;
}
return CountActiveD3DStreams();
}
if (pPatchDesc->hVertexShader) {
return CountActiveD3DStreams();
}
return 0;
}
@ -965,7 +965,7 @@ bool XTL::VertexPatcher::PatchPrimitive(VertexPatchDesc *pPatchDesc,
{
pStream->pPatchedStream->Unlock();
g_pD3DDevice8->SetStreamSource(0, pStream->pPatchedStream, pStream->uiOrigStride);
g_pD3DDevice8->SetStreamSource(uiStream, pStream->pPatchedStream, pStream->uiOrigStride);
}
m_bPatched = true;