]> git.tdb.fi Git - libs/gl.git/blobdiff - source/buffer.h
Cosmetic fixes
[libs/gl.git] / source / buffer.h
index 4f9f32943df58e420848832d2d298914c74676e4..39e88cd1ce7647b74ea5f7f6b75cba575ea0d403 100644 (file)
@@ -3,8 +3,10 @@
 
 #include <vector>
 #include "gl.h"
+#include <msp/gl/extensions/arb_pixel_buffer_object.h>
 #include <msp/gl/extensions/arb_vertex_buffer_object.h>
 #include <msp/gl/extensions/arb_uniform_buffer_object.h>
+#include <msp/gl/extensions/oes_mapbuffer.h>
 
 namespace Msp {
 namespace GL {
@@ -31,6 +33,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 +89,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 +101,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 +123,7 @@ private:
 
 public:
        BufferRange(Buffer &, unsigned, unsigned);
+       ~BufferRange();
 
        void data(const void *);