X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fcore%2Fbuffer.h;h=0d656131dd331b75ec3af57ff81581c9e2b2a3a5;hb=6065f6622cc275dc0b20baaf7c267e71169d18f3;hp=a80e52a68b9c34b00e499c6a16fb0b9e85446d39;hpb=9b3bce7ae76ff8c0c81315d2505ea96bf422a318;p=libs%2Fgl.git diff --git a/source/core/buffer.h b/source/core/buffer.h index a80e52a6..0d656131 100644 --- a/source/core/buffer.h +++ b/source/core/buffer.h @@ -4,12 +4,7 @@ #include #include #include -#include #include "gl.h" -#include -#include -#include -#include namespace Msp { namespace GL { @@ -21,26 +16,6 @@ public: virtual ~buffer_too_small() throw() { } }; -enum BufferUsage -{ - STREAM_DRAW = GL_STREAM_DRAW, - STREAM_READ = GL_STREAM_READ, - STREAM_COPY = GL_STREAM_COPY, - STATIC_DRAW = GL_STATIC_DRAW, - STATIC_READ = GL_STATIC_READ, - STATIC_COPY = GL_STATIC_COPY, - DYNAMIC_DRAW = GL_DYNAMIC_DRAW, - DYNAMIC_READ = GL_DYNAMIC_READ, - DYNAMIC_COPY = GL_DYNAMIC_COPY -}; - -enum BufferAccess -{ - READ_ONLY = GL_READ_ONLY, - WRITE_ONLY = GL_WRITE_ONLY, - READ_WRITE = GL_READ_WRITE -}; - class BufferRange; /** @@ -50,13 +25,13 @@ UniformBlock classes contain built-in support for buffers. */ class Buffer { - friend class BufferRange; - private: unsigned id; unsigned size; bool allocated; + static Buffer *scratch_binding; + public: Buffer(); ~Buffer(); @@ -72,17 +47,11 @@ public: 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); - /** Uploads data into the buffer, completely replacing any previous contents. Storage must be defined beforehand. The data must have size matching the defined storage. */ void data(const void *); - DEPRECATED void data(unsigned, const void *); - /** Overwrites part of the buffer data with new data. Storage must be defined beforehand. */ void sub_data(unsigned, unsigned, const void *); @@ -92,10 +61,14 @@ public: void require_size(unsigned) const; void *map(); - DEPRECATED void *map(BufferAccess) { return map(); } bool unmap(); void set_debug_name(const std::string &); + +private: + void bind_scratch(); +public: + static void unbind_scratch(); }; } // namespace GL