From 2e3a3ac175ac9dbe04fbaf9f196886e7876df3a4 Mon Sep 17 00:00:00 2001 From: Baldur Karlsson Date: Wed, 6 Aug 2014 12:27:46 +0100 Subject: [PATCH] Serialise depth function as part of render state --- renderdoc/driver/gl/gl_renderstate.cpp | 4 ++++ renderdoc/driver/gl/gl_renderstate.h | 1 + 2 files changed, 5 insertions(+) diff --git a/renderdoc/driver/gl/gl_renderstate.cpp b/renderdoc/driver/gl/gl_renderstate.cpp index d8660a904..be50742fe 100644 --- a/renderdoc/driver/gl/gl_renderstate.cpp +++ b/renderdoc/driver/gl/gl_renderstate.cpp @@ -150,6 +150,7 @@ void GLRenderState::FetchState() m_Real->glGetBooleanv(eGL_DEPTH_WRITEMASK, &DepthWriteMask); m_Real->glGetFloatv(eGL_DEPTH_CLEAR_VALUE, &DepthClearValue); + m_Real->glGetIntegerv(eGL_DEPTH_FUNC, (GLint *)&DepthFunc); for(GLuint i=0; i < (GLuint)ARRAY_COUNT(DepthRanges); i++) m_Real->glGetDoublei_v(eGL_DEPTH_RANGE, i, &DepthRanges[i].nearZ); @@ -336,6 +337,7 @@ void GLRenderState::ApplyState() m_Real->glDepthMask(DepthWriteMask); m_Real->glClearDepth(DepthClearValue); + m_Real->glDepthFunc(DepthFunc); for(GLuint i=0; i < (GLuint)ARRAY_COUNT(DepthRanges); i++) { @@ -398,6 +400,7 @@ void GLRenderState::Clear() RDCEraseEl(DepthClearValue); RDCEraseEl(DepthRanges); RDCEraseEl(DepthBounds); + RDCEraseEl(DepthFunc); RDCEraseEl(StencilFront); RDCEraseEl(StencilBack); RDCEraseEl(ColorMasks); @@ -496,6 +499,7 @@ void GLRenderState::Serialise(LogState state, void *ctx, GLResourceManager *rm) m_pSerialiser->Serialise("GL_DEPTH_WRITEMASK", DepthWriteMask); m_pSerialiser->Serialise("GL_DEPTH_CLEAR_VALUE", DepthClearValue); + m_pSerialiser->Serialise("GL_DEPTH_FUNC", DepthFunc); for(size_t i=0; i < ARRAY_COUNT(DepthRanges); i++) { diff --git a/renderdoc/driver/gl/gl_renderstate.h b/renderdoc/driver/gl/gl_renderstate.h index 3d65f64f9..507e07689 100644 --- a/renderdoc/driver/gl/gl_renderstate.h +++ b/renderdoc/driver/gl/gl_renderstate.h @@ -141,6 +141,7 @@ struct GLRenderState uint8_t DepthWriteMask; float DepthClearValue; + GLenum DepthFunc; struct { double nearZ, farZ;