X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=flavors%2Fgl%2Fsource%2Ftexturestate.h;h=c340f4b0392f64ceb8f3e80cf882b6d43d33b14d;hb=8ac18c1745c64441dbbdc130b1c396dcde9b21a7;hp=37cbfdda1ebd2464462e38fd983617f526d76b6f;hpb=f53057ce9b5eb3c7256a4aca95b4944733e14503;p=gldbg.git diff --git a/flavors/gl/source/texturestate.h b/flavors/gl/source/texturestate.h index 37cbfdd..c340f4b 100644 --- a/flavors/gl/source/texturestate.h +++ b/flavors/gl/source/texturestate.h @@ -1,10 +1,3 @@ -/* $Id$ - -This file is part of gldbg -Copyright © 2009 Mikko Rasa, Mikkosoft Productions -Distributed under the GPL -*/ - #ifndef TEXTURESTATE_H_ #define TEXTURESTATE_H_ @@ -21,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; @@ -40,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; };