#include <stdexcept>
#include <string>
-#include <vector>
-#include "gl.h"
namespace Msp {
namespace GL {
*/
class Buffer
{
+ friend class PipelineState;
+ friend class Texture2D;
+ friend class VertexSetup;
+
private:
unsigned id;
unsigned size;
- bool allocated;
static Buffer *scratch_binding;
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);
- /** Allocates storage for the buffer. The contents are initially undefined.
- If storage has already been allocated, does nothing. */
- void allocate();
-
/** Uploads data into the buffer, completely replacing any previous
contents. Storage must be defined beforehand. The data must have size
matching the defined storage. */