From a76d70831ae101fc3607837582284f74aa2eb33f Mon Sep 17 00:00:00 2001 From: Baldur Karlsson Date: Tue, 29 Jul 2014 13:59:21 +0100 Subject: [PATCH] Add a few new glGet functions --- renderdoc/driver/gl/gl_driver.h | 3 +++ renderdoc/driver/gl/gl_hookset.h | 3 +++ renderdoc/driver/gl/gl_hookset_defs.h | 6 ++++++ renderdoc/driver/gl/wrappers/gl_get_funcs.cpp | 15 +++++++++++++++ 4 files changed, 27 insertions(+) diff --git a/renderdoc/driver/gl/gl_driver.h b/renderdoc/driver/gl/gl_driver.h index 0728f5b02..0f31b7120 100644 --- a/renderdoc/driver/gl/gl_driver.h +++ b/renderdoc/driver/gl/gl_driver.h @@ -480,11 +480,14 @@ class WrappedOpenGL IMPLEMENT_FUNCTION_SERIALISED(void, glGetUniformIndices(GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices)); IMPLEMENT_FUNCTION_SERIALISED(GLuint, glGetUniformBlockIndex(GLuint program, const GLchar *uniformBlockName)); IMPLEMENT_FUNCTION_SERIALISED(void, glGetActiveUniformsiv(GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params)); + IMPLEMENT_FUNCTION_SERIALISED(void, glGetActiveUniformBlockiv(GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params)); IMPLEMENT_FUNCTION_SERIALISED(void, glGetActiveUniform(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name)); IMPLEMENT_FUNCTION_SERIALISED(void, glGetActiveAttrib(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name)); IMPLEMENT_FUNCTION_SERIALISED(GLint, glGetAttribLocation(GLuint program, const GLchar *name)); IMPLEMENT_FUNCTION_SERIALISED(void, glGetUniformfv(GLuint program, GLint location, GLfloat *params)); IMPLEMENT_FUNCTION_SERIALISED(void, glGetUniformiv(GLuint program, GLint location, GLint *params)); + IMPLEMENT_FUNCTION_SERIALISED(void, glGetUniformuiv(GLuint program, GLint location, GLuint *params)); + IMPLEMENT_FUNCTION_SERIALISED(void, glGetUniformdv(GLuint program, GLint location, GLdouble *params)); enum UniformType { diff --git a/renderdoc/driver/gl/gl_hookset.h b/renderdoc/driver/gl/gl_hookset.h index ea8d92847..2777faec3 100644 --- a/renderdoc/driver/gl/gl_hookset.h +++ b/renderdoc/driver/gl/gl_hookset.h @@ -238,10 +238,13 @@ struct GLHookSet PFNGLGETUNIFORMBLOCKINDEXPROC glGetUniformBlockIndex; PFNGLGETATTRIBLOCATIONPROC glGetAttribLocation; PFNGLGETACTIVEUNIFORMPROC glGetActiveUniform; + PFNGLGETACTIVEUNIFORMBLOCKIVPROC glGetActiveUniformBlockiv; PFNGLGETACTIVEUNIFORMSIVPROC glGetActiveUniformsiv; PFNGLGETACTIVEATTRIBPROC glGetActiveAttrib; PFNGLGETUNIFORMFVPROC glGetUniformfv; PFNGLGETUNIFORMIVPROC glGetUniformiv; + PFNGLGETUNIFORMUIVPROC glGetUniformuiv; + PFNGLGETUNIFORMDVPROC glGetUniformdv; PFNGLUNIFORMBLOCKBINDINGPROC glUniformBlockBinding; PFNGLUNIFORMMATRIX4FVPROC glUniformMatrix4fv; PFNGLUNIFORM1FPROC glUniform1f; diff --git a/renderdoc/driver/gl/gl_hookset_defs.h b/renderdoc/driver/gl/gl_hookset_defs.h index 92b44ac45..c5384207c 100644 --- a/renderdoc/driver/gl/gl_hookset_defs.h +++ b/renderdoc/driver/gl/gl_hookset_defs.h @@ -252,10 +252,13 @@ HookExtension(PFNGLGETUNIFORMBLOCKINDEXPROC, glGetUniformBlockIndex); \ HookExtension(PFNGLGETATTRIBLOCATIONPROC, glGetAttribLocation); \ HookExtension(PFNGLGETACTIVEUNIFORMPROC, glGetActiveUniform); \ + HookExtension(PFNGLGETACTIVEUNIFORMBLOCKIVPROC, glGetActiveUniformBlockiv); \ HookExtension(PFNGLGETACTIVEUNIFORMSIVPROC, glGetActiveUniformsiv); \ HookExtension(PFNGLGETACTIVEATTRIBPROC, glGetActiveAttrib); \ HookExtension(PFNGLGETUNIFORMFVPROC, glGetUniformfv); \ HookExtension(PFNGLGETUNIFORMIVPROC, glGetUniformiv); \ + HookExtension(PFNGLGETUNIFORMUIVPROC, glGetUniformuiv); \ + HookExtension(PFNGLGETUNIFORMDVPROC, glGetUniformdv); \ HookExtension(PFNGLUNIFORMBLOCKBINDINGPROC, glUniformBlockBinding); \ HookExtension(PFNGLUNIFORMMATRIX4FVPROC, glUniformMatrix4fv); \ HookExtension(PFNGLUNIFORM1FPROC, glUniform1f); \ @@ -592,10 +595,13 @@ HookWrapper2(GLuint, glGetUniformBlockIndex, GLuint, program, const GLchar *, uniformBlockName); \ HookWrapper2(GLint, glGetAttribLocation, GLuint, program, const GLchar *, name); \ HookWrapper7(void, glGetActiveUniform, GLuint, program, GLuint, index, GLsizei, bufSize, GLsizei *, length, GLint *, size, GLenum *, type, GLchar *, name); \ + HookWrapper4(void, glGetActiveUniformBlockiv, GLuint, program, GLuint, uniformBlockIndex, GLenum, pname, GLint *, params); \ HookWrapper5(void, glGetActiveUniformsiv, GLuint, program, GLsizei, uniformCount, const GLuint *, uniformIndices, GLenum, pname, GLint *, params); \ HookWrapper7(void, glGetActiveAttrib, GLuint, program, GLuint, index, GLsizei, bufSize, GLsizei *, length, GLint *, size, GLenum *, type, GLchar *, name); \ HookWrapper3(void, glGetUniformfv, GLuint, program, GLint, location, GLfloat *, params); \ HookWrapper3(void, glGetUniformiv, GLuint, program, GLint, location, GLint *, params); \ + HookWrapper3(void, glGetUniformuiv, GLuint, program, GLint, location, GLuint *, params); \ + HookWrapper3(void, glGetUniformdv, GLuint, program, GLint, location, GLdouble *, params); \ HookWrapper3(void, glUniformBlockBinding, GLuint, program, GLuint, uniformBlockIndex, GLuint, uniformBlockBinding); \ HookWrapper4(void, glUniformMatrix4fv, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \ HookWrapper2(void, glUniform1f, GLint, location, GLfloat, v0); \ diff --git a/renderdoc/driver/gl/wrappers/gl_get_funcs.cpp b/renderdoc/driver/gl/wrappers/gl_get_funcs.cpp index b9ad1648e..c93cddb26 100644 --- a/renderdoc/driver/gl/wrappers/gl_get_funcs.cpp +++ b/renderdoc/driver/gl/wrappers/gl_get_funcs.cpp @@ -315,6 +315,11 @@ void WrappedOpenGL::glGetActiveUniformsiv(GLuint program, GLsizei uniformCount, m_Real.glGetActiveUniformsiv(program, uniformCount, uniformIndices, pname, params); } +void WrappedOpenGL::glGetActiveUniformBlockiv(GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params) +{ + m_Real.glGetActiveUniformBlockiv(program, uniformBlockIndex, pname, params); +} + void WrappedOpenGL::glGetActiveAttrib(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name) { m_Real.glGetActiveAttrib(program, index, bufSize, length, size, type, name); @@ -330,6 +335,16 @@ void WrappedOpenGL::glGetUniformiv(GLuint program, GLint location, GLint *params m_Real.glGetUniformiv(program, location, params); } +void WrappedOpenGL::glGetUniformuiv(GLuint program, GLint location, GLuint *params) +{ + m_Real.glGetUniformuiv(program, location, params); +} + +void WrappedOpenGL::glGetUniformdv(GLuint program, GLint location, GLdouble *params) +{ + m_Real.glGetUniformdv(program, location, params); +} + void WrappedOpenGL::glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels) { m_Real.glReadPixels(x, y, width, height, format, type, pixels);