]> git.tdb.fi Git - libs/gl.git/blobdiff - source/core/texture.h
Use standard fixed-size integer types
[libs/gl.git] / source / core / texture.h
index c4e72031ebb174e372877dfd14972449e80d9178..555d19ffee902f3d3457b9a831a1625b4819b03d 100644 (file)
@@ -37,7 +37,8 @@ protected:
        private:
                void init();
 
-               unsigned get_levels() const;
+               virtual void finish();
+
        protected:
                void load_external_image(Graphics::Image &, const std::string &);
 
@@ -45,23 +46,9 @@ protected:
                void external_image(const std::string &);
                void external_image_srgb(const std::string &);
                void external_image_common(const std::string &);
-               void filter(TextureFilter);
                void generate_mipmap(bool);
                void image_data(const std::string &);
-               void mag_filter(TextureFilter);
-               void max_anisotropy(float);
-               void min_filter(TextureFilter);
                void mipmap_levels(unsigned);
-               void sampler();
-               void wrap(TextureWrap);
-               void wrap_r(TextureWrap);
-               void wrap_s(TextureWrap);
-               void wrap_t(TextureWrap);
-       };
-
-       enum ParameterMask
-       {
-               FORMAT_SWIZZLE = 512
        };
 
        enum FormatSwizzle
@@ -79,9 +66,10 @@ protected:
        FormatSwizzle swizzle;
        bool use_srgb_format;
        bool auto_gen_mipmap;
-       Sampler default_sampler;
+       std::string debug_name;
 
        static int swizzle_orders[];
+       static Texture *scratch_binding;
 
        Texture(GLenum, ResourceManager * = 0);
        Texture(const Texture &);
@@ -90,52 +78,16 @@ public:
        ~Texture();
 
 protected:
+       void generate_id();
        void set_format(PixelFormat);
        void apply_swizzle();
        void set_parameter_i(GLenum, int) const;
 
 public:
-       Sampler &get_default_sampler() { return default_sampler; }
-       const Sampler &get_default_sampler() const { return default_sampler; }
-
-       DEPRECATED void set_min_filter(TextureFilter);
-       DEPRECATED void set_mag_filter(TextureFilter);
-
-       /** Sets filter for both minification and magnification.  Since mipmapping
-       is not applicable to magnification, LINEAR is used instead. */
-       DEPRECATED void set_filter(TextureFilter);
-
-       DEPRECATED void set_mipmap_levels(unsigned) { }
-
-       DEPRECATED void set_max_anisotropy(float);
-
-       /** Sets the wrapping mode for all coordinates. */
-       DEPRECATED void set_wrap(TextureWrap);
-
-       DEPRECATED void set_wrap_s(TextureWrap);
-       DEPRECATED void set_wrap_t(TextureWrap);
-       DEPRECATED void set_wrap_r(TextureWrap);
-
-       static bool can_generate_mipmap();
+       PixelFormat get_format() const { return format; }
 
        void generate_mipmap();
 
-       /** Sets automatic mipmap generation.  If enabled, mipmaps are generated
-       when a texture image is uploaded. */
-       void set_auto_generate_mipmap(bool);
-
-       /// Deprecated.  Use set_auto_generate_mipmap instead.
-       DEPRECATED void set_generate_mipmap(bool g) { set_auto_generate_mipmap(g); }
-
-       /** 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. */
-       DEPRECATED void set_compare_enabled(bool);
-
-       /** Sets the function to use for depth comparison. */
-       DEPRECATED void set_compare_func(Predicate);
-
        /// Loads a Graphics::Image from a file and uploads it to the texture.
        virtual void load_image(const std::string &, unsigned = 0);
 
@@ -151,14 +103,14 @@ public:
        GLenum get_target() const { return target; }
        unsigned get_id() const { return id; }
 
-       void bind() const { bind_to(0); }
-       void bind_to(unsigned) const;
+       virtual std::uint64_t get_data_size() const { return 0; }
 
-       static const Texture *current(unsigned = 0);
-       static void unbind() { unbind_from(0); }
-       static void unbind_from(unsigned);
+       void set_debug_name(const std::string &);
 
-       virtual UInt64 get_data_size() const { return 0; }
+protected:
+       void bind_scratch();
+public:
+       static void unbind_scratch();
 };
 
 } // namespace GL