X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fcore%2Fbuffer.h;h=83e75927ae31c3a44cd81420cea8f626a39c605e;hb=f1244e29afd2a36aafc2373d485457b4cb0411ff;hp=cc5e58741c141f1fd5910e1abda23ec68a650a39;hpb=7aaec9a70b8d7733429bec043f8e33e02956f266;p=libs%2Fgl.git diff --git a/source/core/buffer.h b/source/core/buffer.h index cc5e5874..83e75927 100644 --- a/source/core/buffer.h +++ b/source/core/buffer.h @@ -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