A little housekeeping on Vertex Shader in DX9. Pending more work but my shader code is still too buggy to commit.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@330 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
XTra.KrazzY
2008-08-26 23:11:15 +00:00
parent 59974dfb5b
commit 60a5a592f9
8 changed files with 62 additions and 86 deletions

View File

@ -2,6 +2,7 @@
#include "Utils.h"
#include "Globals.h"
#include "ShaderManager.h"
#include "VertexLoader.h"
#include "BPMemory.h"
#include "XFMemory.h"
@ -40,7 +41,6 @@ VShaderCache::VSCache VShaderCache::vshaders;
void PShaderCache::Init()
{
}
@ -49,7 +49,7 @@ void PShaderCache::Shutdown()
PSCache::iterator iter = pshaders.begin();
for (;iter!=pshaders.end();iter++)
iter->second.Destroy();
pshaders.clear();
pshaders.clear();
}
@ -79,7 +79,7 @@ void PShaderCache::SetShader()
}
const char *code = GeneratePixelShader();
LPDIRECT3DPIXELSHADER9 shader = D3D::CompilePShader(code, strlen(code));
LPDIRECT3DPIXELSHADER9 shader = D3D::CompilePShader(code, int(strlen(code)));
if (shader)
{
//Make an entry in the table
@ -135,8 +135,13 @@ void VShaderCache::Shutdown()
void VShaderCache::SetShader()
{
if (D3D::GetShaderVersion() < 2)
return; // we are screwed
static LPDIRECT3DVERTEXSHADER9 lastShader = 0;
xformhash currentHash = GetCurrentXForm();
DVSTARTPROFILE();
tevhash currentHash = GetCurrentTEV();
VSCache::iterator iter;
iter = vshaders.find(currentHash);
@ -153,8 +158,8 @@ void VShaderCache::SetShader()
return;
}
LPDIRECT3DVERTEXSHADER9 shader = GenerateVertexShader();
const char *code = GenerateVertexShader();
LPDIRECT3DVERTEXSHADER9 shader = D3D::CompileVShader(code, int(strlen(code)));
if (shader)
{
//Make an entry in the table
@ -180,5 +185,5 @@ void VShaderCache::Cleanup()
iter = vshaders.erase(iter);
}
}
SETSTAT(stats.numPixelShadersAlive, (int)vshaders.size());
SETSTAT(stats.numVertexShadersAlive, (int)vshaders.size());
}