X-Git-Url: http://git.tdb.fi/?p=gldbg.git;a=blobdiff_plain;f=flavors%2Fgl%2Fsource%2Ftexturestate.h;h=c340f4b0392f64ceb8f3e80cf882b6d43d33b14d;hp=9bc739bbed6abee16b613770002093a4d5ab3c6f;hb=8ac18c1745c64441dbbdc130b1c396dcde9b21a7;hpb=bc201c7dd5ebef9c0db1142387715c7ad4d53b62 diff --git a/flavors/gl/source/texturestate.h b/flavors/gl/source/texturestate.h index 9bc739b..c340f4b 100644 --- a/flavors/gl/source/texturestate.h +++ b/flavors/gl/source/texturestate.h @@ -14,10 +14,15 @@ struct TexImageState GLenum internal_format; TexImageState(); + + void set_1d(GLenum, unsigned); void set_2d(GLenum, unsigned, unsigned); + void set_3d(GLenum, unsigned, unsigned, unsigned); std::string describe() const; }; +extern GLenum texture_cube_faces[6]; + struct TextureState { unsigned id; @@ -33,21 +38,39 @@ struct TextureState bool generate_mipmap; TextureState(); + + TexImageState &get_image(unsigned); + void set_image_1d(unsigned, GLenum, unsigned); void set_image_2d(unsigned, GLenum, unsigned, unsigned); + void set_face_image_2d(GLenum, unsigned, GLenum, unsigned, unsigned); + void set_image_3d(unsigned, GLenum, unsigned, unsigned, unsigned); + void create_mipmaps(unsigned = 0); void set_parameter(GLenum, const int *); std::string describe() const; }; struct TexUnitState { - AutoConstPtr current_2d; - AutoConstPtr current_3d; + struct Binding + { + bool enabled; + AutoConstPtr current; + + Binding(); + std::string describe() const; + }; - TexUnitState(); + Binding binding_1d; + Binding binding_2d; + Binding binding_3d; + Binding binding_cube; + Binding *get_binding(GLenum); + const Binding *get_binding(GLenum) const; void set_current_texture(GLenum, TextureState *); TextureState *get_current_texture(GLenum); const TextureState *get_current_texture(GLenum) const; + bool is_enabled(GLenum) const; std::string describe_binding(GLenum) const; };