Class wrapping buffer functions with explicit target selector. More...
#include </home/chochlik/devel/oglplus/include/oglplus/buffer.hpp>
Classes | |
struct | Property |
Types related to Buffer. More... | |
Public Types | |
typedef BufferTypedMap< GLubyte > | Map |
Mapping of the buffer to the client address space. | |
typedef BufferTarget | Target |
Buffer bind targets. | |
typedef BufferIndexedTarget | IndexedTarget |
Buffer indexed bind targets. | |
Public Member Functions | |
void | Bind (Target target) const |
Binds this buffer to the specified target . More... | |
void | BindBase (IndexedTarget target, GLuint index) const |
Binds this buffer to the specified indexed target . More... | |
void | BindBaseUniform (UniformBufferBindingPoint index) const |
Bind this buffer to the specified uniform buffer binding point. More... | |
void | BindBaseTransformFeedback (TransformFeedbackBufferBindingPoint index) const |
Bind this buffer to the specified TFB buffer binding point. More... | |
void | BindBaseAtomicCounter (AtomicCounterBufferBindingPoint index) const |
Bind this buffer to the specified atomic counter buffer binding point. More... | |
void | BindBaseShaderStorage (ShaderStorageBufferBindingPoint index) const |
Bind this buffer to the specified shader storage buffer binding point. More... | |
void | BindRange (IndexedTarget target, GLuint index, BufferSize offset, BufferSize size) const |
Binds a range in this buffer to the specified indexed target . More... | |
void | InvalidateData (void) |
Invalidate the buffer data. More... | |
void | InvalidateSubData (BufferSize offset, BufferSize size) |
Invalidate a subrange of the buffer data. More... | |
Static Public Member Functions | |
static bool | Mapped (Target target) |
Returns true if the buffer is mapped. More... | |
static void | Resize (Target target, BufferSize size, BufferUsage usage=BufferUsage::StaticDraw) |
Allocates buffer storage to the specified size without any data. More... | |
static void | Data (Target target, const BufferData &data, BufferUsage usage=BufferUsage::StaticDraw) |
Uploads (sets) the buffer data. More... | |
static void | RawData (Target target, BufferSize size, const GLvoid *data, BufferUsage usage=BufferUsage::StaticDraw) |
Uploads (sets) the buffer data. More... | |
template<typename GLtype > | |
static void | Data (Target target, GLsizei count, const GLtype *data, BufferUsage usage=BufferUsage::StaticDraw) |
Uploads (sets) the buffer data. More... | |
template<typename GLtype > | |
static void | SubData (Target target, BufferSize offset, GLsizei count, const GLtype *data) |
Uploads (sets) a subrange of the buffer data. More... | |
static void | CopySubData (BufferTarget readtarget, BufferTarget writetarget, BufferSize readoffset, BufferSize writeoffset, BufferSize size) |
Copy data between buffers. More... | |
template<typename GLtype > | |
static void | ClearData (Target target, PixelDataInternalFormat internal_format, PixelDataFormat format, const GLtype *data) |
Clear the buffer data. More... | |
template<typename GLtype > | |
static void | ClearSubData (Target target, PixelDataInternalFormat internal_format, BufferSize offset, BufferSize size, PixelDataFormat format, const GLtype *data) |
Clear a subrange of the buffer data. More... | |
static void | Storage (Target target, BufferSize size, const void *data, Bitfield< BufferStorageBit > flags) |
Creates a data store for a buffer object. More... | |
static bool | ImmutableStorage (Target target) |
Returns true if the buffer storage is immutable. More... | |
static Bitfield< BufferStorageBit > | StorageFlags (Target target) |
Returns the buffer storage flags. More... | |
static GLsizei | Size (Target target) |
Returns the buffer size. More... | |
static BufferUsage | Usage (Target target) |
Returns the buffer usage. More... | |
static Bitfield< BufferMapAccess > | Access (Target target) |
Returns the buffer usage. More... | |
static void | MakeResident (Target target, AccessSpecifier access) |
Makes buffer currently bound to target accessible to GLSL shaders. More... | |
static void | MakeNonResident (Target target) |
Makes buffer currently bound to target inaccessible to GLSL shaders. More... | |
static BufferGPUAddress | GPUAddress (Target target) |
Returns the GPU address of the buffer currently bound to target. More... | |
static void | Bind (Target target, BufferName buffer) |
Binds the specified buffer to the specified target . More... | |
static void | BindBase (IndexedTarget target, GLuint index, BufferName buffer) |
Bind the specified buffer to the specified indexed target . More... | |
static void | BindBase (BufferIndexedTarget target, GLuint first, const Sequence< BufferName > &buffers) |
Sequentially binds buffers to target starting at first index. More... | |
static void | BindRange (IndexedTarget target, GLuint index, BufferName buffer, BufferSize offset, BufferSize size) |
Bind a range the specified buffer to the specified indexed target . More... | |
static BufferName | Binding (Target target) |
Returns the current Buffer bound to specified target . More... | |
static BufferName | Binding (IndexedTarget target, GLuint idx) |
Returns the current Buffer bound to specified indexed target . More... | |
Class wrapping buffer functions with explicit target selector.
|
static |
Returns the buffer usage.
GL_BUFFER_ACCESS
Error |
|
staticinherited |
Binds the specified buffer
to the specified target
.
References oglplus::GetGLName().
|
inherited |
Binds this buffer to the specified target
.
|
staticinherited |
Bind the specified buffer
to the specified indexed target
.
Error |
References oglplus::GetGLName().
|
staticinherited |
Sequentially binds buffers
to target
starting at first
index.
References oglplus::GetGLNames(), and oglplus::Sequence< ObjName >::size().
|
inherited |
Binds this buffer to the specified indexed target
.
|
inherited |
Bind this buffer to the specified atomic counter buffer binding point.
Error | Requires OpenGL 4.2 or the GL_ARB_shader_atomic_counters extension. |
References oglplus::AtomicCounter.
|
inherited |
Bind this buffer to the specified shader storage buffer binding point.
Error | Requires OpenGL 4.3 or the GL_ARB_shader_storage_buffer_object extension. |
References oglplus::ShaderStorage.
|
inherited |
Bind this buffer to the specified TFB buffer binding point.
Error | Requires OpenGL 4.0 or the GL_ARB_transform_feedback3 extension. |
References oglplus::TransformFeedback.
|
inherited |
Bind this buffer to the specified uniform buffer binding point.
Error | Requires OpenGL 4.0 or the GL_ARB_transform_feedback3 extension. |
References oglplus::Uniform.
|
staticinherited |
Returns the current Buffer bound to specified target
.
|
staticinherited |
Returns the current Buffer bound to specified indexed target
.
|
staticinherited |
Bind a range the specified buffer to the specified indexed target
.
Error |
References oglplus::BufferSize::Get(), and oglplus::GetGLName().
|
inherited |
Binds a range in this buffer to the specified indexed target
.
|
static |
Clear the buffer data.
Error | Requires OpenGL 4.3. |
|
static |
Clear a subrange of the buffer data.
Error | Requires OpenGL 4.3. |
References oglplus::BufferSize::Get().
|
static |
Copy data between buffers.
Error | Requires OpenGL 3.1 or the GL_ARB_copy_buffer extension. |
References oglplus::BufferSize::Get().
|
static |
Uploads (sets) the buffer data.
This member function uploads the specified to the buffer bound to the specified target
using the usage
as hint.
Error |
|
static |
Uploads (sets) the buffer data.
This member function uploads count
units of sizeof(GLtype)
from the location pointed to by data
to the buffer bound to the specified target
using the usage
as hint.
Error |
|
static |
Returns the GPU address of the buffer currently bound to target.
Requires the GL_NV_shader_buffer_load extension.
GL_BUFFER_GPU_ADDRESS_NV
Error |
|
static |
Returns true if the buffer storage is immutable.
Error | Requires OpenGL 4.4 or the GL_ARB_buffer_storage extension. |
GL_BUFFER_IMMUTABLE_STORAGE
|
inherited |
Invalidate the buffer data.
Error | Requires OpenGL 4.3 or the GL_ARB_invalidate_subdata extension. |
|
inherited |
Invalidate a subrange of the buffer data.
Error | Requires OpenGL 4.3 or the GL_ARB_invalidate_subdata extension. |
References oglplus::BufferSize::Get().
|
static |
Makes buffer currently bound to target inaccessible to GLSL shaders.
Requires the GL_NV_shader_buffer_load extension.
Error |
|
static |
Makes buffer currently bound to target accessible to GLSL shaders.
Requires the GL_NV_shader_buffer_load extension.
Error |
|
static |
Returns true if the buffer is mapped.
GL_BUFFER_MAPPED
Error |
|
static |
Uploads (sets) the buffer data.
This member function uploads size
bytes from the location pointed to by data
to the buffer bound to the specified target
using the usage
as hint.
Error |
|
static |
Allocates buffer storage to the specified size without any data.
This member function allows to (re-)allocate the buffer storage to the specifies size
, without uploading any data.
Error |
References oglplus::BufferSize::Get().
|
static |
Returns the buffer size.
GL_BUFFER_SIZE
Error |
|
static |
Creates a data store for a buffer object.
Error | Requires OpenGL 4.4 or the GL_ARB_buffer_storage extension. |
|
static |
Returns the buffer storage flags.
Error | Requires OpenGL 4.4 or the GL_ARB_buffer_storage extension. |
GL_BUFFER_STORAGE_FLAGS
|
static |
|
static |
Returns the buffer usage.
GL_BUFFER_USAGE
Error |