]> git.tdb.fi Git - libs/gl.git/blobdiff - source/core/texture.h
Use a scratch binding to modify textures and buffers
[libs/gl.git] / source / core / texture.h
index 7fb41a622b7b3c7609baea465480603d9b1555f5..1631f69f248109a1a06764f9fd038b05841e685e 100644 (file)
@@ -49,11 +49,6 @@ protected:
                void mipmap_levels(unsigned);
        };
 
-       enum ParameterMask
-       {
-               FORMAT_SWIZZLE = 512
-       };
-
        enum FormatSwizzle
        {
                NO_SWIZZLE,
@@ -72,6 +67,7 @@ protected:
        std::string debug_name;
 
        static int swizzle_orders[];
+       static Texture *scratch_binding;
 
        Texture(GLenum, ResourceManager * = 0);
        Texture(const Texture &);
@@ -86,6 +82,8 @@ protected:
        void set_parameter_i(GLenum, int) const;
 
 public:
+       PixelFormat get_format() const { return format; }
+
        static bool can_generate_mipmap();
 
        void generate_mipmap();
@@ -112,16 +110,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;
-
-       static const Texture *current(unsigned = 0);
-       static void unbind() { unbind_from(0); }
-       static void unbind_from(unsigned);
-
        virtual UInt64 get_data_size() const { return 0; }
 
        void set_debug_name(const std::string &);
+
+protected:
+       void bind_scratch();
+public:
+       static void unbind_scratch();
 };
 
 } // namespace GL