From 81c7f985f3875b80ae8f65db1d8151e78f3c5eff Mon Sep 17 00:00:00 2001 From: baldurk Date: Sun, 23 Nov 2014 16:41:44 +0000 Subject: [PATCH] Add glClampColor and glReadnPixels * glClampColor doesn't have to be serialised as it only affects glReadPixels (which aren't serialised). --- renderdoc/driver/gl/gl_driver.h | 2 ++ renderdoc/driver/gl/gl_hookset.h | 2 ++ renderdoc/driver/gl/gl_hookset_defs.h | 6 ++++++ renderdoc/driver/gl/wrappers/gl_get_funcs.cpp | 9 +++++++++ 4 files changed, 19 insertions(+) diff --git a/renderdoc/driver/gl/gl_driver.h b/renderdoc/driver/gl/gl_driver.h index 079ef0916..e7abcc98e 100644 --- a/renderdoc/driver/gl/gl_driver.h +++ b/renderdoc/driver/gl/gl_driver.h @@ -418,7 +418,9 @@ class WrappedOpenGL IMPLEMENT_FUNCTION_SERIALISED(void, glScissorArrayv(GLuint first, GLsizei count, const GLint *v)); IMPLEMENT_FUNCTION_SERIALISED(void, glScissorIndexed(GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height)); IMPLEMENT_FUNCTION_SERIALISED(void, glScissorIndexedv(GLuint index, const GLint *v)); + IMPLEMENT_FUNCTION_SERIALISED(void, glClampColor(GLenum target, GLenum clamp)); IMPLEMENT_FUNCTION_SERIALISED(void, glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels)); + IMPLEMENT_FUNCTION_SERIALISED(void, glReadnPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *pixels)); IMPLEMENT_FUNCTION_SERIALISED(void, glReadBuffer(GLenum mode)); IMPLEMENT_FUNCTION_SERIALISED(void, glGenFramebuffers(GLsizei n, GLuint *framebuffers)); IMPLEMENT_FUNCTION_SERIALISED(void, glDrawBuffer(GLenum buf)); diff --git a/renderdoc/driver/gl/gl_hookset.h b/renderdoc/driver/gl/gl_hookset.h index 53f1efb50..115486a50 100644 --- a/renderdoc/driver/gl/gl_hookset.h +++ b/renderdoc/driver/gl/gl_hookset.h @@ -178,6 +178,8 @@ struct GLHookSet PFNGLGETTEXTURESUBIMAGEPROC glGetTextureSubImage; PFNGLGETTEXPARAMETERIIVPROC glGetTexParameterIiv; PFNGLGETTEXPARAMETERIUIVPROC glGetTexParameterIuiv; + PFNGLCLAMPCOLORPROC glClampColor; // aliases glClampColorARB + PFNGLREADNPIXELSPROC glReadnPixels; // aliases glReadnPixelsARB PFNGLGETSAMPLERPARAMETERIIVPROC glGetSamplerParameterIiv; PFNGLGETSAMPLERPARAMETERIUIVPROC glGetSamplerParameterIuiv; PFNGLGETSAMPLERPARAMETERFVPROC glGetSamplerParameterfv; diff --git a/renderdoc/driver/gl/gl_hookset_defs.h b/renderdoc/driver/gl/gl_hookset_defs.h index 204137b18..e69183b1d 100644 --- a/renderdoc/driver/gl/gl_hookset_defs.h +++ b/renderdoc/driver/gl/gl_hookset_defs.h @@ -186,6 +186,10 @@ HookExtension(PFNGLGETTEXTURESUBIMAGEPROC, glGetTextureSubImage); \ HookExtension(PFNGLGETTEXPARAMETERIIVPROC, glGetTexParameterIiv); \ HookExtension(PFNGLGETTEXPARAMETERIUIVPROC, glGetTexParameterIuiv); \ + HookExtension(PFNGLCLAMPCOLORPROC, glClampColor); \ + HookExtensionAlias(PFNGLCLAMPCOLORPROC, glClampColor, glClampColorARB); \ + HookExtension(PFNGLREADNPIXELSPROC, glReadnPixels); \ + HookExtensionAlias(PFNGLREADNPIXELSPROC, glReadnPixels, glReadnPixelsARB); \ HookExtension(PFNGLGETSAMPLERPARAMETERIIVPROC, glGetSamplerParameterIiv); \ HookExtension(PFNGLGETSAMPLERPARAMETERIUIVPROC, glGetSamplerParameterIuiv); \ HookExtension(PFNGLGETSAMPLERPARAMETERFVPROC, glGetSamplerParameterfv); \ @@ -853,6 +857,8 @@ HookWrapper12(void, glGetTextureSubImage, GLuint, texture, GLint, level, GLint, xoffset, GLint, yoffset, GLint, zoffset, GLsizei, width, GLsizei, height, GLsizei, depth, GLenum, format, GLenum, type, GLsizei, bufSize, void *, pixels); \ HookWrapper3(void, glGetTexParameterIiv, GLenum, target, GLenum, pname, GLint *, params); \ HookWrapper3(void, glGetTexParameterIuiv, GLenum, target, GLenum, pname, GLuint *, params); \ + HookWrapper2(void, glClampColor, GLenum, target, GLenum, clamp); \ + HookWrapper8(void, glReadnPixels, GLint, x, GLint, y, GLsizei, width, GLsizei, height, GLenum, format, GLenum, type, GLsizei, bufSize, void *, data); \ HookWrapper3(void, glGetSamplerParameterIiv, GLuint, sampler, GLenum, pname, GLint *, params); \ HookWrapper3(void, glGetSamplerParameterIuiv, GLuint, sampler, GLenum, pname, GLuint *, params); \ HookWrapper3(void, glGetSamplerParameterfv, GLuint, sampler, GLenum, pname, GLfloat *, params); \ diff --git a/renderdoc/driver/gl/wrappers/gl_get_funcs.cpp b/renderdoc/driver/gl/wrappers/gl_get_funcs.cpp index dae5ada6a..93d5d6eee 100644 --- a/renderdoc/driver/gl/wrappers/gl_get_funcs.cpp +++ b/renderdoc/driver/gl/wrappers/gl_get_funcs.cpp @@ -716,12 +716,21 @@ void WrappedOpenGL::glGetVertexAttribfv(GLuint index, GLenum pname, GLfloat *par m_Real.glGetVertexAttribfv(index, pname, params); } +void WrappedOpenGL::glClampColor(GLenum target, GLenum clamp) +{ + m_Real.glClampColor(target, clamp); +} 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); } +void WrappedOpenGL::glReadnPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *pixels) +{ + m_Real.glReadnPixels(x, y, width, height, format, type, bufSize, pixels); +} + void WrappedOpenGL::glGetTransformFeedbackVarying(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name) { m_Real.glGetTransformFeedbackVarying(program, index, bufSize, length, size, type, name);