summaryrefslogtreecommitdiff
path: root/Source/Plugins/Plugin_VideoDX9/Src/PixelShaderCache.cpp
diff options
context:
space:
mode:
authorXTra.KrazzY <XTra.KrazzY@gmail.com>2009-03-01 01:50:26 +0000
committerXTra.KrazzY <XTra.KrazzY@gmail.com>2009-03-01 01:50:26 +0000
commit0710bbb3a7a44454b30173716d6a297abc00a370 (patch)
tree59e7fcf0d831b1695151e302ddc41093bea4f492 /Source/Plugins/Plugin_VideoDX9/Src/PixelShaderCache.cpp
parentd8ee333bd7e4abddfcb1c1a1edeb7b6557c5aee8 (diff)
Comments for future reference (ector, please read this)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2496 8ced0084-cf51-0410-be5f-012b33b47a6e
Diffstat (limited to 'Source/Plugins/Plugin_VideoDX9/Src/PixelShaderCache.cpp')
-rw-r--r--Source/Plugins/Plugin_VideoDX9/Src/PixelShaderCache.cpp25
1 files changed, 20 insertions, 5 deletions
diff --git a/Source/Plugins/Plugin_VideoDX9/Src/PixelShaderCache.cpp b/Source/Plugins/Plugin_VideoDX9/Src/PixelShaderCache.cpp
index 5dc27c872d..a291e444e8 100644
--- a/Source/Plugins/Plugin_VideoDX9/Src/PixelShaderCache.cpp
+++ b/Source/Plugins/Plugin_VideoDX9/Src/PixelShaderCache.cpp
@@ -34,13 +34,24 @@ PixelShaderCache::PSCache PixelShaderCache::PixelShaders;
void SetPSConstant4f(int const_number, float f1, float f2, float f3, float f4)
{
- const float f[4] = {f1, f2, f3, f4};
- D3D::dev->SetPixelShaderConstantF(const_number, f, 1);
+ //const float f[4] = {f1, f2, f3, f4};
+ //D3D::dev->SetPixelShaderConstantF(const_number, f, 1);
+
+
+ // TODO: The Cg Way
+ /** CGparameter param = cgGetNamedParameter(program, "someParameter");
+ cgSetParameter4f(param, f1, f2, f3, f4); **/
+
}
void SetPSConstant4fv(int const_number, const float *f)
{
- D3D::dev->SetPixelShaderConstantF(const_number, f, 1);
+ //D3D::dev->SetPixelShaderConstantF(const_number, f, 1);
+
+ // TODO: The Cg Way
+ /** CGparameter param = cgGetNamedParameter(program, "someParameter");
+ cgSetParameter4fv(param, f); **/
+
}
void PixelShaderCache::Init()
@@ -78,7 +89,8 @@ void PixelShaderCache::SetShader()
if (!lastShader || entry.shader != lastShader)
{
//D3D::dev->SetPixelShader(entry.shader);
- cgD3D9LoadProgram(entry.shader, false, 0);
+ if(!cgD3D9IsProgramLoaded(entry.shader))
+ cgD3D9LoadProgram(entry.shader, false, 0);
cgD3D9BindProgram(entry.shader);
lastShader = entry.shader;
}
@@ -88,6 +100,7 @@ void PixelShaderCache::SetShader()
const char *code = GeneratePixelShader(PixelShaderManager::GetTextureMask(), false, false);
//LPDIRECT3DPIXELSHADER9 shader = D3D::CompilePixelShader(code, (int)(strlen(code)));
CGprogram shader = CompileCgShader(code);
+
if (shader)
{
//Make an entry in the table
@@ -98,8 +111,10 @@ void PixelShaderCache::SetShader()
// There seems to be an unknown Cg error here for some reason
///PanicAlert("Load pShader");
- cgD3D9LoadProgram(shader, false, 0);
+ if(!cgD3D9IsProgramLoaded(shader))
+ cgD3D9LoadProgram(shader, false, 0);
cgD3D9BindProgram(shader);
+ D3D::dev->SetFVF(NULL);
///PanicAlert("Loaded pShader");
INCSTAT(stats.numPixelShadersCreated);