Add glSamplerParameter variants

This commit is contained in:
baldurk
2014-05-31 16:56:48 +01:00
parent ef9b050b4d
commit 76ba104918
6 changed files with 211 additions and 1 deletions
+5
View File
@@ -164,6 +164,11 @@ enum GLChunkType
GEN_SAMPLERS,
SAMPLER_PARAMETERI,
SAMPLER_PARAMETERF,
SAMPLER_PARAMETERIV,
SAMPLER_PARAMETERFV,
SAMPLER_PARAMETERIIV,
SAMPLER_PARAMETERIUIV,
BIND_SAMPLER,
GEN_BUFFER,
+166 -1
View File
@@ -390,7 +390,7 @@ bool WrappedOpenGL::Serialise_glSamplerParameteri(GLuint sampler, GLenum pname,
if(m_State < WRITING)
{
GLResource res = GetResourceManager()->GetLiveResource(id);
glSamplerParameteri(res.name, pname, param);
glSamplerParameteri(res.name, PName, Param);
}
return true;
@@ -412,6 +412,171 @@ void WrappedOpenGL::glSamplerParameteri(GLuint sampler, GLenum pname, GLint para
}
}
bool WrappedOpenGL::Serialise_glSamplerParameterf(GLuint sampler, GLenum pname, GLfloat param)
{
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(SamplerRes(sampler)));
SERIALISE_ELEMENT(GLenum, PName, pname);
SERIALISE_ELEMENT(float, Param, param);
if(m_State < WRITING)
{
GLResource res = GetResourceManager()->GetLiveResource(id);
glSamplerParameterf(res.name, PName, Param);
}
return true;
}
void WrappedOpenGL::glSamplerParameterf(GLuint sampler, GLenum pname, GLfloat param)
{
m_Real.glSamplerParameterf(sampler, pname, param);
if(m_State >= WRITING)
{
SCOPED_SERIALISE_CONTEXT(SAMPLER_PARAMETERF);
Serialise_glSamplerParameterf(sampler, pname, param);
if(m_State == WRITING_IDLE)
GetResourceManager()->GetResourceRecord(SamplerRes(sampler))->AddChunk(scope.Get());
else
m_ContextRecord->AddChunk(scope.Get());
}
}
bool WrappedOpenGL::Serialise_glSamplerParameteriv(GLuint sampler, GLenum pname, const GLint *params)
{
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(SamplerRes(sampler)));
SERIALISE_ELEMENT(GLenum, PName, pname);
const size_t nParams = (PName == eGL_TEXTURE_BORDER_COLOR ? 4U : 1U);
SERIALISE_ELEMENT_ARR(int32_t, Params, params, nParams);
if(m_State < WRITING)
{
GLResource res = GetResourceManager()->GetLiveResource(id);
glSamplerParameteriv(res.name, PName, Params);
}
delete[] Params;
return true;
}
void WrappedOpenGL::glSamplerParameteriv(GLuint sampler, GLenum pname, const GLint *params)
{
m_Real.glSamplerParameteriv(sampler, pname, params);
if(m_State >= WRITING)
{
SCOPED_SERIALISE_CONTEXT(SAMPLER_PARAMETERIV);
Serialise_glSamplerParameteriv(sampler, pname, params);
if(m_State == WRITING_IDLE)
GetResourceManager()->GetResourceRecord(SamplerRes(sampler))->AddChunk(scope.Get());
else
m_ContextRecord->AddChunk(scope.Get());
}
}
bool WrappedOpenGL::Serialise_glSamplerParameterfv(GLuint sampler, GLenum pname, const GLfloat *params)
{
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(SamplerRes(sampler)));
SERIALISE_ELEMENT(GLenum, PName, pname);
const size_t nParams = (PName == eGL_TEXTURE_BORDER_COLOR ? 4U : 1U);
SERIALISE_ELEMENT_ARR(float, Params, params, nParams);
if(m_State < WRITING)
{
GLResource res = GetResourceManager()->GetLiveResource(id);
glSamplerParameterfv(res.name, PName, Params);
}
return true;
}
void WrappedOpenGL::glSamplerParameterfv(GLuint sampler, GLenum pname, const GLfloat *params)
{
m_Real.glSamplerParameterfv(sampler, pname, params);
if(m_State >= WRITING)
{
SCOPED_SERIALISE_CONTEXT(SAMPLER_PARAMETERFV);
Serialise_glSamplerParameterfv(sampler, pname, params);
if(m_State == WRITING_IDLE)
GetResourceManager()->GetResourceRecord(SamplerRes(sampler))->AddChunk(scope.Get());
else
m_ContextRecord->AddChunk(scope.Get());
}
}
bool WrappedOpenGL::Serialise_glSamplerParameterIiv(GLuint sampler, GLenum pname, const GLint *params)
{
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(SamplerRes(sampler)));
SERIALISE_ELEMENT(GLenum, PName, pname);
const size_t nParams = (PName == eGL_TEXTURE_BORDER_COLOR ? 4U : 1U);
SERIALISE_ELEMENT_ARR(int32_t, Params, params, nParams);
if(m_State < WRITING)
{
GLResource res = GetResourceManager()->GetLiveResource(id);
glSamplerParameterIiv(res.name, PName, Params);
}
delete[] Params;
return true;
}
void WrappedOpenGL::glSamplerParameterIiv(GLuint sampler, GLenum pname, const GLint *params)
{
m_Real.glSamplerParameterIiv(sampler, pname, params);
if(m_State >= WRITING)
{
SCOPED_SERIALISE_CONTEXT(SAMPLER_PARAMETERIIV);
Serialise_glSamplerParameterIiv(sampler, pname, params);
if(m_State == WRITING_IDLE)
GetResourceManager()->GetResourceRecord(SamplerRes(sampler))->AddChunk(scope.Get());
else
m_ContextRecord->AddChunk(scope.Get());
}
}
bool WrappedOpenGL::Serialise_glSamplerParameterIuiv(GLuint sampler, GLenum pname, const GLuint *params)
{
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(SamplerRes(sampler)));
SERIALISE_ELEMENT(GLenum, PName, pname);
const size_t nParams = (PName == eGL_TEXTURE_BORDER_COLOR ? 4U : 1U);
SERIALISE_ELEMENT_ARR(uint32_t, Params, params, nParams);
if(m_State < WRITING)
{
GLResource res = GetResourceManager()->GetLiveResource(id);
glSamplerParameterIuiv(res.name, PName, Params);
}
delete[] Params;
return true;
}
void WrappedOpenGL::glSamplerParameterIuiv(GLuint sampler, GLenum pname, const GLuint *params)
{
m_Real.glSamplerParameterIuiv(sampler, pname, params);
if(m_State >= WRITING)
{
SCOPED_SERIALISE_CONTEXT(SAMPLER_PARAMETERIUIV);
Serialise_glSamplerParameterIuiv(sampler, pname, params);
if(m_State == WRITING_IDLE)
GetResourceManager()->GetResourceRecord(SamplerRes(sampler))->AddChunk(scope.Get());
else
m_ContextRecord->AddChunk(scope.Get());
}
}
bool WrappedOpenGL::Serialise_glPixelStorei(GLenum pname, GLint param)
{
SERIALISE_ELEMENT(GLenum, PName, pname);
+20
View File
@@ -121,6 +121,11 @@ const char *GLChunkNames[] =
"glGenSamplers",
"glSamplerParameteri",
"glSamplerParameterf",
"glSamplerParameteriv",
"glSamplerParameterfv",
"glSamplerParameterIiv",
"glSamplerParameterIuiv",
"glBindSampler",
"glGenBuffers",
@@ -1007,6 +1012,21 @@ void WrappedOpenGL::ProcessChunk(uint64_t offset, GLChunkType context)
case SAMPLER_PARAMETERI:
Serialise_glSamplerParameteri(0, eGL_UNKNOWN_ENUM, 0);
break;
case SAMPLER_PARAMETERF:
Serialise_glSamplerParameterf(0, eGL_UNKNOWN_ENUM, 0);
break;
case SAMPLER_PARAMETERIV:
Serialise_glSamplerParameteriv(0, eGL_UNKNOWN_ENUM, NULL);
break;
case SAMPLER_PARAMETERFV:
Serialise_glSamplerParameterfv(0, eGL_UNKNOWN_ENUM, NULL);
break;
case SAMPLER_PARAMETERIIV:
Serialise_glSamplerParameterIiv(0, eGL_UNKNOWN_ENUM, NULL);
break;
case SAMPLER_PARAMETERIUIV:
Serialise_glSamplerParameterIuiv(0, eGL_UNKNOWN_ENUM, NULL);
break;
case CLEAR_COLOR:
Serialise_glClearColor(0, 0, 0, 0);
+5
View File
@@ -314,6 +314,11 @@ class WrappedOpenGL
IMPLEMENT_FUNCTION_SERIALISED(void, glGenSamplers(GLsizei count, GLuint *samplers));
IMPLEMENT_FUNCTION_SERIALISED(void, glBindSampler(GLuint unit, GLuint sampler));
IMPLEMENT_FUNCTION_SERIALISED(void, glSamplerParameteri(GLuint sampler, GLenum pname, GLint param));
IMPLEMENT_FUNCTION_SERIALISED(void, glSamplerParameterf(GLuint sampler, GLenum pname, GLfloat param));
IMPLEMENT_FUNCTION_SERIALISED(void, glSamplerParameteriv(GLuint sampler, GLenum pname, const GLint *params));
IMPLEMENT_FUNCTION_SERIALISED(void, glSamplerParameterfv(GLuint sampler, GLenum pname, const GLfloat *params));
IMPLEMENT_FUNCTION_SERIALISED(void, glSamplerParameterIiv(GLuint sampler, GLenum pname, const GLint *params));
IMPLEMENT_FUNCTION_SERIALISED(void, glSamplerParameterIuiv(GLuint sampler, GLenum pname, const GLuint *params));
IMPLEMENT_FUNCTION_SERIALISED(void, glViewport(GLint x, GLint y, GLsizei width, GLsizei height));
IMPLEMENT_FUNCTION_SERIALISED(void, glViewportIndexedf(GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h));
IMPLEMENT_FUNCTION_SERIALISED(void, glViewportIndexedfv(GLuint index, const GLfloat *v));
+5
View File
@@ -159,6 +159,11 @@ struct GLHookSet
PFNGLGENSAMPLERSPROC glGenSamplers;
PFNGLBINDSAMPLERPROC glBindSampler;
PFNGLSAMPLERPARAMETERIPROC glSamplerParameteri;
PFNGLSAMPLERPARAMETERFPROC glSamplerParameterf;
PFNGLSAMPLERPARAMETERIVPROC glSamplerParameteriv;
PFNGLSAMPLERPARAMETERFVPROC glSamplerParameterfv;
PFNGLSAMPLERPARAMETERIIVPROC glSamplerParameterIiv;
PFNGLSAMPLERPARAMETERIUIVPROC glSamplerParameterIuiv;
PFNGLCLEARBUFFERFVPROC glClearBufferfv;
PFNGLCLEARBUFFERIVPROC glClearBufferiv;
PFNGLCLEARBUFFERUIVPROC glClearBufferuiv;
+10
View File
@@ -171,6 +171,11 @@
HookExtension(PFNGLGENSAMPLERSPROC, glGenSamplers); \
HookExtension(PFNGLBINDSAMPLERPROC, glBindSampler); \
HookExtension(PFNGLSAMPLERPARAMETERIPROC, glSamplerParameteri); \
HookExtension(PFNGLSAMPLERPARAMETERFPROC, glSamplerParameterf); \
HookExtension(PFNGLSAMPLERPARAMETERIVPROC, glSamplerParameteriv); \
HookExtension(PFNGLSAMPLERPARAMETERFVPROC, glSamplerParameterfv); \
HookExtension(PFNGLSAMPLERPARAMETERIIVPROC, glSamplerParameterIiv); \
HookExtension(PFNGLSAMPLERPARAMETERIUIVPROC, glSamplerParameterIuiv); \
HookExtension(PFNGLCLEARBUFFERFVPROC, glClearBufferfv); \
HookExtension(PFNGLCLEARBUFFERIVPROC, glClearBufferiv); \
HookExtension(PFNGLCLEARBUFFERUIVPROC, glClearBufferuiv); \
@@ -396,6 +401,11 @@
HookWrapper2(void, glGenSamplers, GLsizei, count, GLuint *, samplers); \
HookWrapper2(void, glBindSampler, GLuint, unit, GLuint, sampler); \
HookWrapper3(void, glSamplerParameteri, GLuint, sampler, GLenum, pname, GLint, param); \
HookWrapper3(void, glSamplerParameterf, GLuint, sampler, GLenum, pname, GLfloat, param); \
HookWrapper3(void, glSamplerParameteriv, GLuint, sampler, GLenum, pname, const GLint *, param); \
HookWrapper3(void, glSamplerParameterfv, GLuint, sampler, GLenum, pname, const GLfloat *, param); \
HookWrapper3(void, glSamplerParameterIiv, GLuint, sampler, GLenum, pname, const GLint *, param); \
HookWrapper3(void, glSamplerParameterIuiv, GLuint, sampler, GLenum, pname, const GLuint *, param); \
HookWrapper3(void, glClearBufferfv, GLenum, buffer, GLint, drawbuffer, const GLfloat *, value); \
HookWrapper3(void, glClearBufferiv, GLenum, buffer, GLint, drawbuffer, const GLint *, value); \
HookWrapper3(void, glClearBufferuiv, GLenum, buffer, GLint, drawbuffer, const GLuint *, value); \