+protected:
+ void update_parameter(int) const;
+public:
+ void set_min_filter(TextureFilter);
+ void set_mag_filter(TextureFilter);
+ void set_max_anisotropy(float);
+
+ /** Sets the wrapping mode for all coordinates. */
+ void set_wrap(TextureWrap);
+
+ void set_wrap_s(TextureWrap);
+ void set_wrap_t(TextureWrap);
+ void set_wrap_r(TextureWrap);
+
+ /** Sets automatic mipmap generation. If enabled, mipmaps are generated
+ when a texture image is uploaded. */
+ void set_generate_mipmap(bool);
+
+ /** Sets depth texture comparison. Has no effect on other formats. When
+ comparison is enabled, the third component of the texture coordinate is
+ compared against the texel value, and the result is returned as the texture
+ sample. */
+ void set_compare_enabled(bool);
+
+ /** Sets the function to use for depth comparison. */
+ void set_compare_func(Predicate);
+
+ GLenum get_target() const { return target; }
+ unsigned get_id() const { return id; }
+