X-Git-Url: http://git.tdb.fi/?p=gldbg.git;a=blobdiff_plain;f=flavors%2Fgl%2Fsource%2Fglstate.h;fp=flavors%2Fgl%2Fsource%2Fglstate.h;h=e829103c7556884344bf2d80d9b6e0c99492c309;hp=e6a3d9812f556f6b351799da28625e8978620402;hb=90368e53a94c6fa68cb678a1a03a9da7bf0c7dd8;hpb=73d29911044cfffdc7edad50aeb2a8d1175ecd11 diff --git a/flavors/gl/source/glstate.h b/flavors/gl/source/glstate.h index e6a3d98..e829103 100644 --- a/flavors/gl/source/glstate.h +++ b/flavors/gl/source/glstate.h @@ -6,6 +6,7 @@ #include "arraystate.h" #include "bufferstate.h" #include "gldecoder.h" +#include "programstate.h" #include "texturestate.h" struct Vector3 @@ -37,6 +38,8 @@ class GlState public: typedef std::map TextureMap; typedef std::map BufferMap; + typedef std::map ShaderMap; + typedef std::map ProgramMap; private: GlDecoder *decoder; @@ -57,6 +60,8 @@ private: ArrayState color_array; ArrayState texcoord_arrays[8]; std::map attrib_arrays; + ShaderMap shaders; + ProgramMap programs; public: GlState(); @@ -76,6 +81,10 @@ public: const ArrayState &get_array(GLenum) const; const ArrayState &get_texture_coord_array(unsigned) const; const ArrayState &get_attrib_array(unsigned) const; + const ShaderMap &get_shaders() const { return shaders; } + const ShaderState &get_shader(unsigned) const; + const ProgramMap &get_programs() const { return programs; } + const ProgramState &get_program(unsigned) const; private: bool &get_boolean_state(GLenum); TextureState *get_current_texture(GLenum); @@ -85,6 +94,10 @@ private: void set_current_texture(GLenum, unsigned); void set_current_buffer(GLenum, unsigned); ArrayState &get_attrib_array(unsigned); + ShaderState *get_shader(unsigned, bool); + void delete_shader(unsigned); + ProgramState *get_program(unsigned, bool); + void delete_program(unsigned); static void glEnableClientState(void *, GLenum); static void glDisableClientState(void *, GLenum); @@ -123,6 +136,22 @@ private: static void glDrawElements(void *, GLenum, int, GLenum, const void *); static void glDrawRangeElements(void *, GLenum, unsigned, unsigned, int, GLenum, const void *); + + static void glCreateShader(void *, unsigned, GLenum); + static void glShaderSource(void *, unsigned, int, const char **, const int *); + static void glCompileShader(void *, unsigned); + static void glGetShaderiv(void *, unsigned, GLenum, int *); + static void glGetShaderInfoLog(void *, unsigned, int, int *, char *); + static void glDeleteShader(void *, unsigned); + static void glCreateProgram(void *, unsigned); + static void glAttachShader(void *, unsigned, unsigned); + static void glLinkProgram(void *, unsigned); + static void glGetProgramiv(void *, unsigned, GLenum, int *); + static void glGetProgramInfoLog(void *, unsigned, int, int *, char *); + static void glDeleteProgram(void *, unsigned); + static void glDeleteObjectARB(void *, unsigned); + static void glGetObjectParameterivARB(void *, unsigned, GLenum, int *); + static void glGetInfoLogARB(void *, unsigned, int, int *, char *); }; #endif