From ed2661514a115b541c33773c02a5b67d4d37476e Mon Sep 17 00:00:00 2001 From: baldurk Date: Mon, 10 Nov 2014 23:04:39 +0000 Subject: [PATCH] Since the debug layer complains for me, respect GL_MAX_VERTEX_ATTRIBS * I need to respect the GL_MAX_* values all over the render state, but the other things don't complain so I can ignore it for now :). --- renderdoc/driver/gl/gl_renderstate.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/renderdoc/driver/gl/gl_renderstate.cpp b/renderdoc/driver/gl/gl_renderstate.cpp index 75b1b802f..749acd80e 100644 --- a/renderdoc/driver/gl/gl_renderstate.cpp +++ b/renderdoc/driver/gl/gl_renderstate.cpp @@ -106,7 +106,10 @@ void GLRenderState::FetchState() // undefined results. Ie. if someone set ints, this might return anything. However there's also // no way to query for the type so we just have to hope for the best and hope most people are // sane and don't use these except for a default "all 0s" attrib. - for(GLuint i=0; i < (GLuint)ARRAY_COUNT(GenericVertexAttribs); i++) + + GLuint maxNumAttribs = 0; + m_Real->glGetIntegerv(eGL_MAX_VERTEX_ATTRIBS, (GLint *)&maxNumAttribs); + for(GLuint i=0; i < RDCMIN(maxNumAttribs, (GLuint)ARRAY_COUNT(GenericVertexAttribs)); i++) m_Real->glGetVertexAttribfv(i, eGL_CURRENT_VERTEX_ATTRIB, &GenericVertexAttribs[i].x); m_Real->glGetFloatv(eGL_POINT_FADE_THRESHOLD_SIZE, &PointFadeThresholdSize);