X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fcore%2Fbuffer.h;h=7682347ff1cf1962b411b36f146ca146c71d3b31;hp=9144afaed3d1682f28efd8076988c8e815a977db;hb=38712d8ecc57d043a2419ffbaeeb57f7a6586f14;hpb=ada4b7614137221b64a00f31fde1498064e9fb19 diff --git a/source/core/buffer.h b/source/core/buffer.h index 9144afae..7682347f 100644 --- a/source/core/buffer.h +++ b/source/core/buffer.h @@ -3,8 +3,7 @@ #include #include -#include -#include "gl.h" +#include "buffer_backend.h" namespace Msp { namespace GL { @@ -23,21 +22,14 @@ A buffer for storing data in GL memory. Putting vertex and index data in buffers can improve rendering performance. The VertexArray, Mesh and UniformBlock classes contain built-in support for buffers. */ -class Buffer +class Buffer: public BufferBackend { -private: - unsigned id; - unsigned size; + friend BufferBackend; - static Buffer *scratch_binding; +private: + unsigned size = 0; public: - Buffer(); - ~Buffer(); - - /** Returns the OpenGL ID of the buffer. For internal use only. */ - unsigned get_id() const { return id; } - /** Defines the storage size of the buffer. Must be called before data can be uploaded. Storage cannot be changed once set. */ void storage(unsigned); @@ -55,15 +47,10 @@ public: void require_size(unsigned) const; - void *map(); - bool unmap(); + using BufferBackend::map; + using BufferBackend::unmap; - void set_debug_name(const std::string &); - -private: - void bind_scratch(); -public: - static void unbind_scratch(); + using BufferBackend::set_debug_name; }; } // namespace GL