Add more glUniform* variants

This commit is contained in:
baldurk
2014-05-31 17:05:01 +01:00
parent 76ba104918
commit f6880a158e
4 changed files with 131 additions and 0 deletions
+99
View File
@@ -1264,6 +1264,10 @@ bool WrappedOpenGL::Serialise_glUniformVector(GLint location, GLsizei count, con
switch(Type)
{
case VEC1IV:
case VEC1UIV:
case VEC1FV: elemsPerVec = 1; break;
case VEC2FV: elemsPerVec = 2; break;
case VEC3FV: elemsPerVec = 3; break;
case VEC4FV: elemsPerVec = 4; break;
default:
@@ -1280,6 +1284,10 @@ bool WrappedOpenGL::Serialise_glUniformVector(GLint location, GLsizei count, con
switch(Type)
{
case VEC1FV: m_Real.glUniform1fv(Loc, Count, (const GLfloat *)value); break;
case VEC1IV: m_Real.glUniform1iv(Loc, Count, (const GLint *)value); break;
case VEC1UIV: m_Real.glUniform1uiv(Loc, Count, (const GLuint *)value); break;
case VEC2FV: m_Real.glUniform2fv(Loc, Count, (const GLfloat *)value); break;
case VEC3FV: m_Real.glUniform3fv(Loc, Count, (const GLfloat *)value); break;
case VEC4FV: m_Real.glUniform4fv(Loc, Count, (const GLfloat *)value); break;
default:
@@ -1311,6 +1319,97 @@ bool WrappedOpenGL::Serialise_glUniformVector(GLint location, GLsizei count, con
return true;
}
void WrappedOpenGL::glUniform1f(GLint location, GLfloat value)
{
m_Real.glUniform1f(location, value);
if(m_State == WRITING_CAPFRAME)
{
SCOPED_SERIALISE_CONTEXT(UNIFORM_VECTOR);
Serialise_glUniformVector(location, 1, &value, VEC1FV);
m_ContextRecord->AddChunk(scope.Get());
}
}
void WrappedOpenGL::glUniform1i(GLint location, GLint value)
{
m_Real.glUniform1i(location, value);
if(m_State == WRITING_CAPFRAME)
{
SCOPED_SERIALISE_CONTEXT(UNIFORM_VECTOR);
Serialise_glUniformVector(location, 1, &value, VEC1IV);
m_ContextRecord->AddChunk(scope.Get());
}
}
void WrappedOpenGL::glUniform1ui(GLint location, GLuint value)
{
m_Real.glUniform1ui(location, value);
if(m_State == WRITING_CAPFRAME)
{
SCOPED_SERIALISE_CONTEXT(UNIFORM_VECTOR);
Serialise_glUniformVector(location, 1, &value, VEC1UIV);
m_ContextRecord->AddChunk(scope.Get());
}
}
void WrappedOpenGL::glUniform1fv(GLint location, GLsizei count, const GLfloat *value)
{
m_Real.glUniform1fv(location, count, value);
if(m_State == WRITING_CAPFRAME)
{
SCOPED_SERIALISE_CONTEXT(UNIFORM_VECTOR);
Serialise_glUniformVector(location, count, value, VEC1FV);
m_ContextRecord->AddChunk(scope.Get());
}
}
void WrappedOpenGL::glUniform1iv(GLint location, GLsizei count, const GLint *value)
{
m_Real.glUniform1iv(location, count, value);
if(m_State == WRITING_CAPFRAME)
{
SCOPED_SERIALISE_CONTEXT(UNIFORM_VECTOR);
Serialise_glUniformVector(location, count, value, VEC1IV);
m_ContextRecord->AddChunk(scope.Get());
}
}
void WrappedOpenGL::glUniform1uiv(GLint location, GLsizei count, const GLuint *value)
{
m_Real.glUniform1uiv(location, count, value);
if(m_State == WRITING_CAPFRAME)
{
SCOPED_SERIALISE_CONTEXT(UNIFORM_VECTOR);
Serialise_glUniformVector(location, count, value, VEC1UIV);
m_ContextRecord->AddChunk(scope.Get());
}
}
void WrappedOpenGL::glUniform2fv(GLint location, GLsizei count, const GLfloat *value)
{
m_Real.glUniform2fv(location, count, value);
if(m_State == WRITING_CAPFRAME)
{
SCOPED_SERIALISE_CONTEXT(UNIFORM_VECTOR);
Serialise_glUniformVector(location, count, value, VEC2FV);
m_ContextRecord->AddChunk(scope.Get());
}
}
void WrappedOpenGL::glUniform3fv(GLint location, GLsizei count, const GLfloat *value)
{
m_Real.glUniform3fv(location, count, value);
+11
View File
@@ -409,6 +409,10 @@ class WrappedOpenGL
{
UNIFORM_UNKNOWN,
VEC1FV,
VEC1IV,
VEC1UIV,
VEC2FV,
VEC3FV,
VEC4FV,
@@ -419,6 +423,13 @@ class WrappedOpenGL
bool Serialise_glUniformVector(GLint location, GLsizei count, const void *value, UniformType type);
IMPLEMENT_FUNCTION_SERIALISED(void, glUniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value));
IMPLEMENT_FUNCTION_SERIALISED(void, glUniform1f(GLint location, GLfloat value));
IMPLEMENT_FUNCTION_SERIALISED(void, glUniform1i(GLint location, GLint value));
IMPLEMENT_FUNCTION_SERIALISED(void, glUniform1ui(GLint location, GLuint value));
IMPLEMENT_FUNCTION_SERIALISED(void, glUniform1iv(GLint location, GLsizei count, const GLint *value));
IMPLEMENT_FUNCTION_SERIALISED(void, glUniform1uiv(GLint location, GLsizei count, const GLuint *value));
IMPLEMENT_FUNCTION_SERIALISED(void, glUniform1fv(GLint location, GLsizei count, const GLfloat *value));
IMPLEMENT_FUNCTION_SERIALISED(void, glUniform2fv(GLint location, GLsizei count, const GLfloat *value));
IMPLEMENT_FUNCTION_SERIALISED(void, glUniform3fv(GLint location, GLsizei count, const GLfloat *value));
IMPLEMENT_FUNCTION_SERIALISED(void, glUniform4fv(GLint location, GLsizei count, const GLfloat *value));
+7
View File
@@ -184,6 +184,13 @@ struct GLHookSet
PFNGLGETUNIFORMFVPROC glGetUniformfv;
PFNGLGETUNIFORMIVPROC glGetUniformiv;
PFNGLUNIFORMMATRIX4FVPROC glUniformMatrix4fv;
PFNGLUNIFORM1FPROC glUniform1f;
PFNGLUNIFORM1IPROC glUniform1i;
PFNGLUNIFORM1UIPROC glUniform1ui;
PFNGLUNIFORM1FVPROC glUniform1fv;
PFNGLUNIFORM1IVPROC glUniform1iv;
PFNGLUNIFORM1UIVPROC glUniform1uiv;
PFNGLUNIFORM2FVPROC glUniform2fv;
PFNGLUNIFORM3FVPROC glUniform3fv;
PFNGLUNIFORM4FVPROC glUniform4fv;
PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC glDrawArraysInstancedBaseInstance;
+14
View File
@@ -196,6 +196,13 @@
HookExtension(PFNGLGETUNIFORMFVPROC, glGetUniformfv); \
HookExtension(PFNGLGETUNIFORMIVPROC, glGetUniformiv); \
HookExtension(PFNGLUNIFORMMATRIX4FVPROC, glUniformMatrix4fv); \
HookExtension(PFNGLUNIFORM1FPROC, glUniform1f); \
HookExtension(PFNGLUNIFORM1IPROC, glUniform1i); \
HookExtension(PFNGLUNIFORM1UIPROC, glUniform1ui); \
HookExtension(PFNGLUNIFORM1FVPROC, glUniform1fv); \
HookExtension(PFNGLUNIFORM1IVPROC, glUniform1iv); \
HookExtension(PFNGLUNIFORM1UIVPROC, glUniform1uiv); \
HookExtension(PFNGLUNIFORM2FVPROC, glUniform2fv); \
HookExtension(PFNGLUNIFORM3FVPROC, glUniform3fv); \
HookExtension(PFNGLUNIFORM4FVPROC, glUniform4fv); \
HookExtension(PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC, glDrawArraysInstancedBaseInstance); \
@@ -426,6 +433,13 @@
HookWrapper3(void, glGetUniformfv, GLuint, program, GLint, location, GLfloat *, params); \
HookWrapper3(void, glGetUniformiv, GLuint, program, GLint, location, GLint *, params); \
HookWrapper4(void, glUniformMatrix4fv, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \
HookWrapper2(void, glUniform1f, GLint, location, GLfloat, value); \
HookWrapper2(void, glUniform1i, GLint, location, GLint, value); \
HookWrapper2(void, glUniform1ui, GLint, location, GLuint, value); \
HookWrapper3(void, glUniform1fv, GLint, location, GLsizei, count, const GLfloat *, value); \
HookWrapper3(void, glUniform1iv, GLint, location, GLsizei, count, const GLint *, value); \
HookWrapper3(void, glUniform1uiv, GLint, location, GLsizei, count, const GLuint *, value); \
HookWrapper3(void, glUniform2fv, GLint, location, GLsizei, count, const GLfloat *, value); \
HookWrapper3(void, glUniform3fv, GLint, location, GLsizei, count, const GLfloat *, value); \
HookWrapper3(void, glUniform4fv, GLint, location, GLsizei, count, const GLfloat *, value); \
HookWrapper5(void, glDrawArraysInstancedBaseInstance, GLenum, mode, GLint, first, GLsizei, count, GLsizei, instancecount, GLuint, baseinstance); \