From ada40e303c094a026b5e5e284b6d12dcafe8dc83 Mon Sep 17 00:00:00 2001 From: baldurk Date: Sun, 25 May 2014 16:14:32 +0100 Subject: [PATCH] Serialise glActiveTexture during frame captures --- renderdoc/driver/gl/gl_common.h | 1 + renderdoc/driver/gl/gl_device_driver.cpp | 24 ++++++++++++++++++++++++ renderdoc/driver/gl/gl_driver.cpp | 1 + 3 files changed, 26 insertions(+) diff --git a/renderdoc/driver/gl/gl_common.h b/renderdoc/driver/gl/gl_common.h index cbc7505b1..cd8d91a85 100644 --- a/renderdoc/driver/gl/gl_common.h +++ b/renderdoc/driver/gl/gl_common.h @@ -82,6 +82,7 @@ enum GLChunkType GEN_TEXTURE, BIND_TEXTURE, + ACTIVE_TEXTURE, TEXSTORAGE2D, TEXSUBIMAGE2D, PIXELSTORE, diff --git a/renderdoc/driver/gl/gl_device_driver.cpp b/renderdoc/driver/gl/gl_device_driver.cpp index 10784f5e2..0a18d4580 100644 --- a/renderdoc/driver/gl/gl_device_driver.cpp +++ b/renderdoc/driver/gl/gl_device_driver.cpp @@ -382,11 +382,35 @@ void WrappedOpenGL::glTexImage2D(GLenum target, GLint level, GLint internalforma RDCUNIMPLEMENTED(); } +bool WrappedOpenGL::Serialise_glActiveTexture(GLenum texture) +{ + SERIALISE_ELEMENT(GLenum, Texture, texture); + + if(m_State < WRITING) + m_Real.glActiveTexture(Texture); + + return true; +} + void WrappedOpenGL::glActiveTexture(GLenum texture) { m_Real.glActiveTexture(texture); m_TextureUnit = texture-eGL_TEXTURE0; + + if(m_State == WRITING_CAPFRAME) + { + Chunk *chunk = NULL; + + { + SCOPED_SERIALISE_CONTEXT(ACTIVE_TEXTURE); + Serialise_glActiveTexture(texture); + + chunk = scope.Get(); + } + + m_ContextRecord->AddChunk(chunk); + } } #pragma endregion diff --git a/renderdoc/driver/gl/gl_driver.cpp b/renderdoc/driver/gl/gl_driver.cpp index ad8a38035..7d7d66a98 100644 --- a/renderdoc/driver/gl/gl_driver.cpp +++ b/renderdoc/driver/gl/gl_driver.cpp @@ -39,6 +39,7 @@ const char *GLChunkNames[] = "WrappedOpenGL::Initialisation", "glGenTextures", "glBindTexture", + "glActiveTexture", "glTexStorage2D", "glTexSubImage2D", "glPixelStore",