]> git.tdb.fi Git - libs/gl.git/blobdiff - source/core/buffer.h
Remove the notion of default binding point from Buffer
[libs/gl.git] / source / core / buffer.h
index cc5e58741c141f1fd5910e1abda23ec68a650a39..83e75927ae31c3a44cd81420cea8f626a39c605e 100644 (file)
@@ -62,14 +62,14 @@ class Buffer
        friend class BufferRange;
 
 private:
-       BufferType type;
        unsigned id;
        unsigned size;
+       bool allocated;
 
        static const Buffer *bound[5];
 
 public:
-       Buffer(BufferType);
+       Buffer();
        ~Buffer();
 
 private:
@@ -79,13 +79,14 @@ public:
        /** Returns the OpenGL ID of the buffer.  For internal use only. */
        unsigned get_id() const { return id; }
 
-       /** Returns the default binding type for the buffer. */
-       BufferType get_type() const { return type; }
-
        /** Defines the storage size of the buffer.  Must be called before data can
        be uploaded.  Storage cannot be changed once set. */
        void storage(unsigned);
 
+       /** Allocates storage for the buffer.  The contents are initially undefined.
+       If storage has already been allocated, does nothing. */
+       void allocate();
+
        /** Sets the usage hint of the buffer.  It will take effect the next time
        the buffer's contents are defined. */
        DEPRECATED void set_usage(BufferUsage);
@@ -111,20 +112,17 @@ public:
        DEPRECATED void *map(BufferAccess) { return map(); }
        bool unmap();
 
-       /** Binds the buffer in its default slot. */
-       void bind() const { bind_to(type); }
-
-       /** Binds the buffer in an alternate slot. */
+       /** Binds the buffer. */
        void bind_to(BufferType) const;
 
-       /** Unbinds the buffer from its default slot. */
-       void unbind() const { unbind_from(type); }
-
        static const Buffer *current(BufferType);
        static void unbind_from(BufferType);
 private:
        static const Buffer *&binding(BufferType);
        static bool set_current(BufferType, const Buffer *);
+
+public:
+       void set_debug_name(const std::string &);
 };
 
 
@@ -155,8 +153,8 @@ private:
        static bool set_current(BufferType, unsigned, const BufferRange *);
 
 public:
-       static unsigned get_n_uniform_buffer_bindings();
-       static unsigned get_uniform_buffer_alignment();
+       DEPRECATED static unsigned get_n_uniform_buffer_bindings();
+       DEPRECATED static unsigned get_uniform_buffer_alignment();
 };
 
 } // namespace GL