Inheritance Graph
graph BT
	BufferObject
	click BufferObject "classRendering_1_1BufferObject"
Description
Representation of an OpenGL buffer object (BO).
Author: Benjamin Eikel
Date: 2012-04-19
Public Types
  
    
      |  |  | 
  
  
    
      |  |  | 
    
      | enum | AccessFlag {NO_ACCESS, READ_ONLY, WRITE_ONLY, READ_WRITE} | 
  
Public Static Attributes
Public Functions
  
    
      |  |  | 
  
  
    
      |  |  | 
    
      |  | BufferObject() Create an invalid buffer object for the given target.
 | 
    
      |  |  | 
    
      |  | BufferObject(const BufferObject & void) Data of an buffer object should not be copied.
 | 
    
      |  |  | 
    
      |  | BufferObject( BufferObject && other) Take ownership of the data of the other buffer object.
 | 
    
      |  |  | 
    
      |  | ~BufferObject() Free the data of the buffer object.
 | 
    
      |  |  | 
    
      | BufferObject & | operator=(const BufferObject & void) Data of an buffer object should not be copied.
 | 
    
      |  |  | 
    
      | BufferObject & | operator=( BufferObject && other) Take ownership of the data of the other buffer object.
 | 
    
      |  |  | 
    
      | void | swap( BufferObject & other) Swap the gl buffer with another BufferObject .
 | 
    
      |  |  | 
    
      | void | prepare() Request a new handle from OpenGL for this buffer object.
 | 
    
      |  |  | 
    
      | void | destroy() Free the handle of this buffer object.
 | 
    
      |  |  | 
    
      | void | bind(uint32_t bufferTarget) const Bind the buffer object to the given target.
 | 
    
      |  |  | 
    
      | void | bind(uint32_t bufferTarget, uint32_t location) const | 
    
      |  |  | 
    
      | void | unbind(uint32_t bufferTarget) const Remove any binding of the given target.
 | 
    
      |  |  | 
    
      | void | unbind(uint32_t bufferTarget, uint32_t location) const | 
    
      | template< typename T  > |  | 
    
      | void | allocateData(uint32_t bufferTarget, std::size_t numberOfElements, uint32_t usageHint) Allocate buffer data.
 | 
    
      | template< typename T  > |  | 
    
      | void | uploadData(uint32_t bufferTarget, const std::vector< T > & data, uint32_t usageHint) Copy data to the buffer object.
 | 
    
      |  |  | 
    
      | void | uploadData(uint32_t bufferTarget, const uint8_t * data, size_t numBytes, uint32_t usageHint) | 
    
      | template< typename T  > |  | 
    
      | void | uploadSubData(uint32_t bufferTarget, const std::vector< T > & data, size_t offset) Copy data to the buffer object.
 | 
    
      |  |  | 
    
      | void | uploadSubData(uint32_t bufferTarget, const uint8_t * data, size_t numBytes, size_t offset) | 
    
      | template< typename T  > |  | 
    
      | std::vector< T > | downloadData(uint32_t bufferTarget, size_t numberOfElements, size_t offset) const Retrieve data from the buffer object.
 | 
    
      |  |  | 
    
      | bool | isValid() const 
 trueif and only if prepare() was executed at least once without an execution of destroy() afterwards. | 
    
      |  |  | 
    
      | uint32_t | getGLId() const | 
    
      |  |  | 
    
      | void | clear(uint32_t bufferTarget, uint32_t internalFormat, uint32_t format, uint32_t type, const uint8_t * data) | 
    
      |  |  | 
    
      | void | clear(uint32_t internalFormat, uint32_t format, uint32_t type, const uint8_t * data) | 
    
      |  |  | 
    
      | void | clear() | 
    
      |  |  | 
    
      | void | copy(const BufferObject & source, uint32_t sourceOffset, uint32_t targetOffset, uint32_t size) | 
    
      |  |  | 
    
      | uint8_t * | map(uint32_t offset, uint32_t size,  AccessFlag  access) | 
    
      |  |  | 
    
      | void | unmap() | 
  
Documentation
enum
 Rendering::BufferObject::AccessFlag
  
    
      | Enumerator |  | Description | 
  
  
    
      | Enumerator |  | Description | 
    
      | NO_ACCESS | = 0 |  | 
    
      | READ_ONLY | = 1 |  | 
    
      | WRITE_ONLY | = 2 |  | 
    
      | READ_WRITE | = 3 |  | 
  
Defined in Rendering/BufferObject.h:58
variable
 Rendering::BufferObject::TARGET_ARRAY_BUFFER
Defined in Rendering/BufferObject.h:33
variable
 Rendering::BufferObject::TARGET_ATOMIC_COUNTER_BUFFER
Defined in Rendering/BufferObject.h:34
variable
 Rendering::BufferObject::TARGET_COPY_READ_BUFFER
Defined in Rendering/BufferObject.h:35
variable
 Rendering::BufferObject::TARGET_COPY_WRITE_BUFFER
Defined in Rendering/BufferObject.h:36
variable
 Rendering::BufferObject::TARGET_DISPATCH_INDIRECT_BUFFER
Defined in Rendering/BufferObject.h:37
variable
 Rendering::BufferObject::TARGET_DRAW_INDIRECT_BUFFER
Defined in Rendering/BufferObject.h:38
variable
 Rendering::BufferObject::TARGET_ELEMENT_ARRAY_BUFFER
Defined in Rendering/BufferObject.h:39
variable
 Rendering::BufferObject::TARGET_PIXEL_PACK_BUFFER
Defined in Rendering/BufferObject.h:40
variable
 Rendering::BufferObject::TARGET_PIXEL_UNPACK_BUFFER
Defined in Rendering/BufferObject.h:41
variable
 Rendering::BufferObject::TARGET_QUERY_BUFFER
Defined in Rendering/BufferObject.h:42
variable
 Rendering::BufferObject::TARGET_SHADER_STORAGE_BUFFER
Defined in Rendering/BufferObject.h:43
variable
 Rendering::BufferObject::TARGET_TEXTURE_BUFFER
Defined in Rendering/BufferObject.h:44
variable
 Rendering::BufferObject::TARGET_TRANSFORM_FEEDBACK_BUFFER
Defined in Rendering/BufferObject.h:45
variable
 Rendering::BufferObject::TARGET_UNIFORM_BUFFER
Defined in Rendering/BufferObject.h:46
variable
 Rendering::BufferObject::USAGE_STREAM_DRAW
Defined in Rendering/BufferObject.h:48
variable
 Rendering::BufferObject::USAGE_STREAM_READ
Defined in Rendering/BufferObject.h:49
variable
 Rendering::BufferObject::USAGE_STREAM_COPY
Defined in Rendering/BufferObject.h:50
variable
 Rendering::BufferObject::USAGE_STATIC_DRAW
Defined in Rendering/BufferObject.h:51
variable
 Rendering::BufferObject::USAGE_STATIC_READ
Defined in Rendering/BufferObject.h:52
variable
 Rendering::BufferObject::USAGE_STATIC_COPY
Defined in Rendering/BufferObject.h:53
variable
 Rendering::BufferObject::USAGE_DYNAMIC_DRAW
Defined in Rendering/BufferObject.h:54
variable
 Rendering::BufferObject::USAGE_DYNAMIC_READ
Defined in Rendering/BufferObject.h:55
variable
 Rendering::BufferObject::USAGE_DYNAMIC_COPY
Defined in Rendering/BufferObject.h:56
function
 Rendering::BufferObject::BufferObject
Create an invalid buffer object for the given target.
Defined in Rendering/BufferObject.h:71
function
 Rendering::BufferObject::BufferObject
Data of an buffer object should not be copied.
Defined in Rendering/BufferObject.h:74
function
 Rendering::BufferObject::BufferObject
Take ownership of the data of the other buffer object.
Defined in Rendering/BufferObject.h:77
function
 Rendering::BufferObject::~BufferObject
Free the data of the buffer object.
Defined in Rendering/BufferObject.h:80
function
 Rendering::BufferObject::operator=
Data of an buffer object should not be copied.
Defined in Rendering/BufferObject.h:83
function
 Rendering::BufferObject::operator=
Take ownership of the data of the other buffer object.
Defined in Rendering/BufferObject.h:86
function
 Rendering::BufferObject::swap
Swap the gl buffer with another BufferObject .
Defined in Rendering/BufferObject.h:89
function
 Rendering::BufferObject::prepare
Request a new handle from OpenGL for this buffer object.
Defined in Rendering/BufferObject.h:92
function
 Rendering::BufferObject::destroy
Free the handle of this buffer object.
Defined in Rendering/BufferObject.h:95
function
 Rendering::BufferObject::bind
  
    
      |  |  |  | 
  
  
    
      |  |  |  | 
    
      | void bind( | uint32_t | bufferTarget ) const | 
  
Bind the buffer object to the given target.
Defined in Rendering/BufferObject.h:98
function
 Rendering::BufferObject::bind
  
    
      |  |  |  | 
  
  
    
      |  |  |  | 
    
      | void bind( | uint32_t | bufferTarget, | 
    
      |  | uint32_t | location | 
    
      | ) const |  |  | 
  
Defined in Rendering/BufferObject.h:99
function
 Rendering::BufferObject::unbind
  
    
      |  |  |  | 
  
  
    
      |  |  |  | 
    
      | void unbind( | uint32_t | bufferTarget ) const | 
  
Remove any binding of the given target.
Defined in Rendering/BufferObject.h:102
function
 Rendering::BufferObject::unbind
  
    
      |  |  |  | 
  
  
    
      |  |  |  | 
    
      | void unbind( | uint32_t | bufferTarget, | 
    
      |  | uint32_t | location | 
    
      | ) const |  |  | 
  
Defined in Rendering/BufferObject.h:103
function
 Rendering::BufferObject::allocateData
  
    
      |  |  |  | 
  
  
    
      | template< typename T  > |  |  | 
    
      | void allocateData( | uint32_t | bufferTarget, | 
    
      |  | std::size_t | numberOfElements, | 
    
      |  | uint32_t | usageHint | 
    
      | ) |  |  | 
  
Allocate buffer data.
Bind the buffer object to the given target, allocatenumberOfElementstimessizeof(T)bytes, and unbind the buffer object.
Defined in Rendering/BufferObject.h:113
function
 Rendering::BufferObject::uploadData
  
    
      |  |  |  | 
  
  
    
      | template< typename T  > |  |  | 
    
      | void uploadData( | uint32_t | bufferTarget, | 
    
      |  | const std::vector< T > & | data, | 
    
      |  | uint32_t | usageHint | 
    
      | ) |  |  | 
  
Copy data to the buffer object.
Bind the buffer object to the given target, copydata.size()timessizeof(T)bytes from the vector to the buffer object, and unbind the buffer object.
Defined in Rendering/BufferObject.h:123
function
 Rendering::BufferObject::uploadData
  
    
      |  |  |  | 
  
  
    
      |  |  |  | 
    
      | void uploadData( | uint32_t | bufferTarget, | 
    
      |  | const uint8_t * | data, | 
    
      |  | size_t | numBytes, | 
    
      |  | uint32_t | usageHint | 
    
      | ) |  |  | 
  
Defined in Rendering/BufferObject.h:124
function
 Rendering::BufferObject::uploadSubData
  
    
      |  |  |  | 
  
  
    
      | template< typename T  > |  |  | 
    
      | void uploadSubData( | uint32_t | bufferTarget, | 
    
      |  | const std::vector< T > & | data, | 
    
      |  | size_t | offset | 
    
      | ) |  |  | 
  
Copy data to the buffer object.
Bind the buffer object to the given target, copydata.size()timessizeof(T)bytes from the vector to the buffer object, and unbind the buffer object.
Defined in Rendering/BufferObject.h:134
function
 Rendering::BufferObject::uploadSubData
  
    
      |  |  |  | 
  
  
    
      |  |  |  | 
    
      | void uploadSubData( | uint32_t | bufferTarget, | 
    
      |  | const uint8_t * | data, | 
    
      |  | size_t | numBytes, | 
    
      |  | size_t | offset | 
    
      | ) |  |  | 
  
Defined in Rendering/BufferObject.h:135
function
 Rendering::BufferObject::downloadData
  
    
      |  |  |  | 
  
  
    
      | template< typename T  > |  |  | 
    
      | std::vector< T > downloadData( | uint32_t | bufferTarget, | 
    
      |  | size_t | numberOfElements, | 
    
      |  | size_t | offset | 
    
      | ) const |  |  | 
  
Retrieve data from the buffer object.
Bind the buffer object to the given target, copynumberOfElementstimessizeof(T)bytes from the buffer object to the vector, and unbind the buffer object.
Defined in Rendering/BufferObject.h:145
function
 Rendering::BufferObject::isValid
trueif and only if prepare() was executed at least once without an execution of destroy() afterwards.
Defined in Rendering/BufferObject.h:148
function
 Rendering::BufferObject::getGLId
Defined in Rendering/BufferObject.h:151
function
 Rendering::BufferObject::clear
  
    
      |  |  |  | 
  
  
    
      |  |  |  | 
    
      | void clear( | uint32_t | bufferTarget, | 
    
      |  | uint32_t | internalFormat, | 
    
      |  | uint32_t | format, | 
    
      |  | uint32_t | type, | 
    
      |  | const uint8_t * | data | 
    
      | ) |  |  | 
  
Defined in Rendering/BufferObject.h:153
function
 Rendering::BufferObject::clear
  
    
      |  |  |  | 
  
  
    
      |  |  |  | 
    
      | void clear( | uint32_t | internalFormat, | 
    
      |  | uint32_t | format, | 
    
      |  | uint32_t | type, | 
    
      |  | const uint8_t * | data | 
    
      | ) |  |  | 
  
Defined in Rendering/BufferObject.h:154
function
 Rendering::BufferObject::clear
Defined in Rendering/BufferObject.h:155
function
 Rendering::BufferObject::copy
  
    
      |  |  |  | 
  
  
    
      |  |  |  | 
    
      | void copy( | const BufferObject & | source, | 
    
      |  | uint32_t | sourceOffset, | 
    
      |  | uint32_t | targetOffset, | 
    
      |  | uint32_t | size | 
    
      | ) |  |  | 
  
Defined in Rendering/BufferObject.h:157
function
 Rendering::BufferObject::map
  
    
      |  |  |  | 
  
  
    
      |  |  |  | 
    
      | uint8_t * map( | uint32_t | offset, | 
    
      |  | uint32_t | size, | 
    
      |  | AccessFlag | access | 
    
      | ) |  |  | 
  
Map all or part of a buffer object’s data store into the client’s address space
  Note: The buffer has to be unmapped before using it for rendering.
Parameters
  - offset
- The offset into the buffer in bytes.
- size
- The size of the buffer range in bytes to map. Whensizeis 0, the entire buffer is mapped.
- allowWrite
- Indicates that the returned pointer may be used to modify buffer object data.
- allowRead
- Indicates that the returned pointer may be used to read buffer object data.
Returns
The mapped data pointer, ornullptrif the mapping failed.
Defined in Rendering/BufferObject.h:169
function
 Rendering::BufferObject::unmap
Unmaps a previously mapped buffer.
Defined in Rendering/BufferObject.h:174