X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fcore%2Fbuffer.h;h=b642738e0e96ef370a5e748701be071998e2de54;hb=8e58fc4da8443cb67fe4cd70d6f68de2be73011d;hp=810bfc1a56253e181f7cc55b5d228c3441e99fee;hpb=be6ffe96ecb4707599fe1a6f620c348760213d46;p=libs%2Fgl.git diff --git a/source/core/buffer.h b/source/core/buffer.h index 810bfc1a..b642738e 100644 --- a/source/core/buffer.h +++ b/source/core/buffer.h @@ -16,9 +16,14 @@ public: }; /** -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. +Stores data in GPU memory. + +Memory must be allocated for the buffer by calling storage(). Contents can +then be modified either synchronously with the data() and sub_data() functions, +or asynchronously by memory-mapping the buffer. + +Applications normally don't need to deal with Buffers directly. They're +managed by other classes such as Mesh and ProgramData. */ class Buffer: public BufferBackend { @@ -28,17 +33,16 @@ private: std::size_t size = 0; public: - /** Defines the storage size of the buffer. Must be called before data can - be uploaded. Storage cannot be changed once set. */ + /** Sets the storage size and allocates memory for the buffer. Size cannot + be changed once set. */ void storage(std::size_t); - /** Uploads data into the buffer, completely replacing any previous - contents. Storage must be defined beforehand. The data must have size - matching the defined storage. */ + /** Replaces contents of the entire buffer. Allocated storage must exist. + The data must have size matching the defined storage. */ void data(const void *); - /** Overwrites part of the buffer data with new data. Storage must be - defined beforehand. */ + /** Replaces a range of bytes in the buffer. Allocated storage must exist. + The range must be fully inside the buffer. */ void sub_data(std::size_t, std::size_t, const void *); std::size_t get_size() const { return size; }