mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-22 13:49:53 -06:00
D3D: minor vs constant-setting optimization, remove a stupid memcpy that doesn't do anything, don't see much benefit though :/ At least the PIX logs will be cleaner.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4301 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
@ -50,12 +50,11 @@ void SetVSConstant4f(int const_number, float f1, float f2, float f3, float f4)
|
||||
lastVSconstants[const_number][2] != f3 ||
|
||||
lastVSconstants[const_number][3] != f4)
|
||||
{
|
||||
const float f[4] = {f1, f2, f3, f4};
|
||||
glProgramEnvParameter4fARB(GL_VERTEX_PROGRAM_ARB, const_number, f1, f2, f3, f4);
|
||||
lastVSconstants[const_number][0] = f1;
|
||||
lastVSconstants[const_number][1] = f2;
|
||||
lastVSconstants[const_number][2] = f3;
|
||||
lastVSconstants[const_number][3] = f4;
|
||||
glProgramEnvParameter4fvARB(GL_VERTEX_PROGRAM_ARB, const_number, lastVSconstants[const_number]);
|
||||
}
|
||||
}
|
||||
|
||||
@ -66,11 +65,11 @@ void SetVSConstant4fv(int const_number, const float *f)
|
||||
lastVSconstants[const_number][2] != f[2] ||
|
||||
lastVSconstants[const_number][3] != f[3])
|
||||
{
|
||||
glProgramEnvParameter4fvARB(GL_VERTEX_PROGRAM_ARB, const_number, f);
|
||||
lastVSconstants[const_number][0] = f[0];
|
||||
lastVSconstants[const_number][1] = f[1];
|
||||
lastVSconstants[const_number][2] = f[2];
|
||||
lastVSconstants[const_number][3] = f[3];
|
||||
glProgramEnvParameter4fvARB(GL_VERTEX_PROGRAM_ARB, const_number, lastVSconstants[const_number]);
|
||||
}
|
||||
}
|
||||
|
||||
@ -83,15 +82,34 @@ void SetMultiVSConstant4fv(int const_number, int count, const float *f)
|
||||
lastVSconstants[const_number + i][2] != f[2 + i*4] ||
|
||||
lastVSconstants[const_number + i][3] != f[3 + i*4])
|
||||
{
|
||||
glProgramEnvParameter4fvARB(GL_VERTEX_PROGRAM_ARB, const_number + i, f + i * 4);
|
||||
lastVSconstants[const_number + i][0] = f[0 + i*4];
|
||||
lastVSconstants[const_number + i][1] = f[1 + i*4];
|
||||
lastVSconstants[const_number + i][2] = f[2 + i*4];
|
||||
lastVSconstants[const_number + i][3] = f[3 + i*4];
|
||||
glProgramEnvParameter4fvARB(GL_VERTEX_PROGRAM_ARB, const_number + i, lastVSconstants[const_number + i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void SetMultiVSConstant3fv(int const_number, int count, const float *f)
|
||||
{
|
||||
for (int i = 0; i < count; i++)
|
||||
{
|
||||
if (lastVSconstants[const_number + i][0] != f[0 + i*3] ||
|
||||
lastVSconstants[const_number + i][1] != f[1 + i*3] ||
|
||||
lastVSconstants[const_number + i][2] != f[2 + i*3] ||
|
||||
lastVSconstants[const_number + i][3] != 0.0f)
|
||||
{
|
||||
lastVSconstants[const_number + i][0] = f[0 + i*3];
|
||||
lastVSconstants[const_number + i][1] = f[1 + i*3];
|
||||
lastVSconstants[const_number + i][2] = f[2 + i*3];
|
||||
lastVSconstants[const_number + i][3] = 0.0f;
|
||||
glProgramEnvParameter4fvARB(GL_VERTEX_PROGRAM_ARB, const_number + i, lastVSconstants[const_number + i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void VertexShaderCache::Init()
|
||||
{
|
||||
for( int i=0;i<(C_FOGPARAMS+8)*4;i++)
|
||||
|
Reference in New Issue
Block a user