33 #include "../Image/buffer_usage.h"
42 class UniformBufferProvider;
43 class UniformBuffer_Impl;
114 std::shared_ptr<UniformBuffer_Impl> impl;
void copy_to(GraphicContext &gc, TransferBuffer &buffer, int dest_pos=0, int src_pos=0, int size=-1)
Copies data to transfer buffer.
UniformBuffer(GraphicContext &gc, ProgramObject &program, const std::string &name, int num_blocks=1, BufferUsage usage=usage_dynamic_draw)
Constructs a ProgramUniformBlock - convenience function.
UniformBuffer(GraphicContext &gc, const void *data, int size, BufferUsage usage=usage_dynamic_draw)
Constructs a VertexArrayBuffer.
Transfer Buffer.
Definition: transfer_buffer.h:46
UniformBuffer(GraphicContext &gc, int block_size, BufferUsage usage=usage_dynamic_draw)
Constructs a ProgramUniformBlock.
UniformBufferProvider * get_provider() const
Get Provider.
UniformBuffer()
Constructs a null instance.
bool operator==(const UniformBuffer &other) const
Handle comparison operator.
BufferUsage
Array Buffer usage enum.
Definition: buffer_usage.h:41
Interface to drawing graphics.
Definition: graphic_context.h:258
void throw_if_null() const
Throw an exception if this object is invalid.
void upload_data(GraphicContext &gc, const void *data, int size)
Uploads data to uniforms buffer.
@ usage_dynamic_draw
Definition: buffer_usage.h:48
bool is_null() const
Returns true if this object is invalid.
Definition: uniform_buffer.h:82
void copy_from(GraphicContext &gc, TransferBuffer &buffer, int dest_pos=0, int src_pos=0, int size=-1)
Copies data from transfer buffer.
Program Object.
Definition: program_object.h:70