X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fbuffer.h;h=e254bcc70ca76a2f6cf7701cdff71faaeb8627d0;hb=0ef8e620a008e92069b0dd9ae4e972bc69430fc7;hp=4f9f32943df58e420848832d2d298914c74676e4;hpb=b69e2eeea92eae2c37c054a2a8b36f55e0ca2690;p=libs%2Fgl.git diff --git a/source/buffer.h b/source/buffer.h index 4f9f3294..e254bcc7 100644 --- a/source/buffer.h +++ b/source/buffer.h @@ -31,6 +31,13 @@ enum BufferUsage DYNAMIC_COPY = GL_DYNAMIC_COPY }; +enum BufferAccess +{ + READ_ONLY = GL_READ_ONLY, + WRITE_ONLY = GL_WRITE_ONLY, + READ_WRITE = GL_READ_WRITE +}; + class BufferRange; /** @@ -80,6 +87,9 @@ public: BufferRange *create_range(unsigned, unsigned); + void *map(BufferAccess); + bool unmap(); + /** Binds the buffer in its default slot. */ void bind() const { bind_to(type); } @@ -89,12 +99,11 @@ public: /** Unbinds the buffer from its default slot. */ void unbind() const { unbind_from(type); } - static const Buffer *current(BufferType t) { return binding(t); } + static const Buffer *current(BufferType); static void unbind_from(BufferType); private: static const Buffer *&binding(BufferType); static bool set_current(BufferType, const Buffer *); - static void restore(const Buffer *, BufferType); }; @@ -112,6 +121,7 @@ private: public: BufferRange(Buffer &, unsigned, unsigned); + ~BufferRange(); void data(const void *);