BugFix: in UpdateTexture, which was introduced a revision before.

support now:
- UpdateSurface
- uMod_IDirect3DSurface9

other improvements:
- added an update button
- uMod can now detect if textures changed their content
This commit is contained in:
code@koerner-de.net
2012-08-19 19:31:17 +00:00
parent b100018d5a
commit 24769aad67
28 changed files with 678 additions and 124 deletions
+19
View File
@@ -735,11 +735,30 @@ int uMod_TextureClient_DX9::MergeUpdate(void)
}
int uMod_TextureClient_DX9::CRCHasChanged( uMod_IDirect3DTexture9* pTexture)
{
UnswitchTextures(pTexture);
if (pTexture->Reference<0) // this texture was not added before or it is a fake texture !
return AddTexture( pTexture);
else
return LookUpToMod( pTexture);
}
int uMod_TextureClient_DX9::CRCHasChanged( uMod_IDirect3DCubeTexture9* pTexture)
{
UnswitchTextures(pTexture);
if (pTexture->Reference<0) // this texture was not added before or it is a fake texture !
return AddTexture( pTexture);
else
return LookUpToMod( pTexture);
}
int uMod_TextureClient_DX9::LookUpToMod( uMod_IDirect3DTexture9* pTexture, int num_index_list, int *index_list) // should only be called for original textures
{
Message("uMod_TextureClient_DX9::LookUpToMod( %p): hash: %#llX, %p\n", pTexture, pTexture->CRC64, this);
if (pTexture->CrossRef_D3Dtex!=NULL) return (RETURN_OK); // bug, this texture is already switched
if (pTexture->CRC64==0) return (RETURN_OK);
int index = GetIndex( pTexture->CRC64, num_index_list, index_list);
if (index>=0)
{