X-Git-Url: http://git.tdb.fi/?p=gldbg.git;a=blobdiff_plain;f=source%2Fglstate.h;h=86cc5386ae02acbd973fab7b4743c16e3c928672;hp=b21034d8b037be51cecb7e2ab45bf545025aa19c;hb=9cdca19aa017ea1711436977855e885d91e78ab0;hpb=64592975a49e2bd26a561f36425071427f37d5fb diff --git a/source/glstate.h b/source/glstate.h index b21034d..86cc538 100644 --- a/source/glstate.h +++ b/source/glstate.h @@ -1,7 +1,7 @@ /* $Id$ This file is part of gldbg -Copyright © 2009 Mikko Rasa, Mikkosoft Productions +Copyright © 2009-2010 Mikko Rasa, Mikkosoft Productions Distributed under the GPL */ @@ -10,6 +10,7 @@ Distributed under the GPL #include #include +#include "arraystate.h" #include "bufferstate.h" #include "gldecoder.h" #include "texturestate.h" @@ -50,11 +51,17 @@ private: Vector4 texcoord[8]; Vector3 normal; unsigned active_tex; + unsigned client_active_tex; TextureMap textures; TexUnitState texunits[8]; BufferMap buffers; BufferState *array_buffer; BufferState *element_buffer; + ArrayState vertex_array; + ArrayState normal_array; + ArrayState color_array; + ArrayState texcoord_arrays[8]; + std::map attrib_arrays; public: GlState(); @@ -70,12 +77,21 @@ public: const BufferMap &get_buffers() const { return buffers; } const BufferState &get_buffer(unsigned) const; const BufferState *get_current_buffer(GLenum) const; + const ArrayState &get_array(GLenum) const; + const ArrayState &get_texture_coord_array(unsigned) const; + const ArrayState &get_attrib_array(unsigned) const; private: + bool &get_boolean_state(GLenum); TextureState *get_current_texture(GLenum); BufferState *get_current_buffer(GLenum); void set_current_texture(GLenum, unsigned); void set_current_buffer(GLenum, unsigned); + static void glEnableClientState(void *, GLenum); + static void glDisableClientState(void *, GLenum); + static void glEnableVertexAttribArray(void *, unsigned); + static void glDisableVertexAttribArray(void *, unsigned); + static void glColor3f(void *, float, float, float); static void glColor4f(void *, float, float, float, float); static void glNormal3f(void *, float, float, float); @@ -92,9 +108,17 @@ private: static void glTexParameteriv(void *, GLenum, GLenum, const int *); static void glDeleteTextures(void *, int, const unsigned *); + static void glVertexPointer(void *, int, GLenum, int, const void *); + static void glNormalPointer(void *, GLenum, int, const void *); + static void glColorPointer(void *, int, GLenum, int, const void *); + static void glClientActiveTexture(void *, unsigned); + static void glTexCoordPointer(void *, int, GLenum, int, const void *); + static void glVertexAttribPointer(void *, unsigned, int, GLenum, int, int, const void *); + static void glBindBuffer(void *, GLenum, unsigned); static void glBufferData(void *, GLenum, int, const void *, GLenum); static void glBufferSubData(void *, GLenum, int, int, const void *); + static void glDeleteBuffers(void *, int, const unsigned *); }; #endif