reset glEnableClientState befor every draw

should be done with VAO, but atm, this is not possible :-(
this also partial revert the fix in fb92c338af (activating texture0 globally).

Signed-off-by: Ryan Houdek <Sonicadvance1@gmail.com>
This commit is contained in:
degasus
2012-12-07 21:09:48 +01:00
committed by Ryan Houdek
parent 888b5fb061
commit 6864b40e26
6 changed files with 97 additions and 24 deletions

View File

@ -17,6 +17,7 @@
#include "Globals.h"
#include "FramebufferManager.h"
#include "VertexShaderGen.h"
#include "TextureConverter.h"
#include "Render.h"
@ -324,6 +325,22 @@ void XFBSource::Draw(const MathUtil::Rectangle<float> &sourcerc,
1.0f, 0.0f
};
// disable all pointer, TODO: use VAO
glEnableClientState(GL_VERTEX_ARRAY);
glDisableVertexAttribArray(SHADER_POSMTX_ATTRIB);
glDisableClientState(GL_NORMAL_ARRAY);
glDisableVertexAttribArray(SHADER_NORM1_ATTRIB);
glDisableVertexAttribArray(SHADER_NORM2_ATTRIB);
glDisableClientState(GL_COLOR_ARRAY);
glDisableClientState(GL_SECONDARY_COLOR_ARRAY);
glClientActiveTexture(GL_TEXTURE0);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glClientActiveTexture(GL_TEXTURE1);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
for(int i=2; i<8; i++) {
glClientActiveTexture(GL_TEXTURE0 + i);
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
}
glVertexPointer(2, GL_FLOAT, 0, vtx1);
glClientActiveTexture(GL_TEXTURE0);