# Visualization Library

A lightweight C++ OpenGL middleware for 2D/3D graphics

[Home] [Tutorials] [All Classes] [Grouped Classes]

Public Member Functions | Protected Attributes

# vl::BufferObject Class Reference

The BufferObject class is a Buffer that can upload its data on the GPU memory. More...

`#include <BufferObject.hpp>`

Inheritance diagram for vl::BufferObject:

List of all members.

## Public Member Functions

| BufferObject ()
| BufferObject (const BufferObject &other)
BufferObject & | operator= (const BufferObject &other)
void | swap (BufferObject &other)
| ~BufferObject ()
void | setHandle (unsigned int handle)
unsigned int | handle () const
GLsizeiptr | byteCountBufferObject () const
void | createBufferObject ()
void | deleteBufferObject ()
void | downloadBufferObject ()
void | setBufferData (EBufferObjectUsage usage, bool discard_local_storage=false)
void | setBufferData (GLsizeiptr byte_count, const GLvoid *data, EBufferObjectUsage usage)
void | setBufferSubData (GLintptr offset=0, GLsizeiptr byte_count=-1, bool discard_local_storage=false)
void | setBufferSubData (GLintptr offset, GLsizeiptr byte_count, const GLvoid *data)
void * | mapBufferObject (EBufferObjectAccess access)
bool | unmapBufferObject ()
EBufferObjectUsage | usage () const
| BufferObject usage flag as specified by setBufferData().

## Protected Attributes

unsigned int | mHandle
GLsizeiptr | mByteCountBufferObject
EBufferObjectUsage | mUsage

## Detailed Description

The BufferObject class is a Buffer that can upload its data on the GPU memory.

Remarks:
  BufferObject is the storage used by ArrayAbstract and subclasses like ArrayFloat3, ArrayUByte4 etc.

Definition at line 55 of file BufferObject.hpp.

## Constructor & Destructor Documentation

vl::BufferObject::BufferObject | ( | ) | `[inline]`

Definition at line 60 of file BufferObject.hpp.

References vl::BU_STATIC_DRAW, mByteCountBufferObject, mHandle, mUsage, and VL_DEBUG_SET_OBJECT_NAME.

vl::BufferObject::BufferObject | ( | const BufferObject & | other ) | `[inline]`

Definition at line 68 of file BufferObject.hpp.

References vl::BU_STATIC_DRAW, mByteCountBufferObject, mHandle, mUsage, and VL_DEBUG_SET_OBJECT_NAME.

vl::BufferObject::~BufferObject | ( | ) | `[inline]`

Definition at line 105 of file BufferObject.hpp.

References deleteBufferObject().

## Member Function Documentation

BufferObject& vl::BufferObject::operator= | ( | const BufferObject & | other ) | `[inline]`

Definition at line 79 of file BufferObject.hpp.

References deleteBufferObject().

void vl::BufferObject::swap | ( | BufferObject & | other ) | `[inline]`

Definition at line 87 of file BufferObject.hpp.

References mByteCountBufferObject, mHandle, and mUsage.

void vl::BufferObject::setHandle | ( | unsigned int | handle ) | `[inline]`

Definition at line 110 of file BufferObject.hpp.

References handle(), and mHandle.

unsigned int vl::BufferObject::handle | ( | ) | const`[inline]`

Definition at line 112 of file BufferObject.hpp.

References mHandle.

Referenced by vl::OpenGLContext::bindVAS(), createBufferObject(), vl::Texture::createTexture(), deleteBufferObject(), downloadBufferObject(), mapBufferObject(), vl::readPixels(), vl::DrawPixels::render_Implementation(), setBufferData(), setBufferSubData(), setHandle(), and unmapBufferObject().

GLsizeiptr vl::BufferObject::byteCountBufferObject | ( | ) | const`[inline]`

Definition at line 114 of file BufferObject.hpp.

References mByteCountBufferObject.

Referenced by downloadBufferObject(), setBufferSubData(), and vl::Array< bvec2, GLbyte, 2, GL_BYTE >::sizeBufferObject().

void vl::BufferObject::createBufferObject | ( | ) | `[inline]`

Definition at line 116 of file BufferObject.hpp.

References handle(), vl::Has_BufferObject, mByteCountBufferObject, mHandle, VL_CHECK, and VL_CHECK_OGL.

Referenced by mapBufferObject(), setBufferData(), and unmapBufferObject().

void vl::BufferObject::deleteBufferObject | ( | ) | `[inline]`

Definition at line 129 of file BufferObject.hpp.

References handle(), vl::Has_BufferObject, mByteCountBufferObject, mHandle, and VL_CHECK.

Referenced by vl::Array< bvec2, GLbyte, 2, GL_BYTE >::clear(), vl::Geometry::deleteBufferObject(), operator=(), and ~BufferObject().

void vl::BufferObject::downloadBufferObject | ( | ) | `[inline]`

Definition at line 142 of file BufferObject.hpp.

References vl::BA_READ_ONLY, byteCountBufferObject(), handle(), vl::Has_BufferObject, mapBufferObject(), vl::Buffer::ptr(), vl::Buffer::resize(), unmapBufferObject(), and VL_CHECK.

void vl::BufferObject::setBufferData | ( | EBufferObjectUsage | usage,
|  | bool | discard_local_storage = `false`
| ) |  | `[inline]`

Definition at line 156 of file BufferObject.hpp.

References vl::Buffer::bytesUsed(), vl::Buffer::clear(), mUsage, vl::Buffer::ptr(), and usage().

Referenced by vl::readPixels(), and vl::ArrayAbstract::updateBufferObject().

void vl::BufferObject::setBufferData | ( | GLsizeiptr | byte_count,
|  | const GLvoid * | data,
|  | EBufferObjectUsage | usage
| ) |  | `[inline]`

Definition at line 168 of file BufferObject.hpp.

References createBufferObject(), handle(), vl::Has_BufferObject, mByteCountBufferObject, mUsage, usage(), VL_CHECK, and VL_CHECK_OGL.

void vl::BufferObject::setBufferSubData | ( | GLintptr | offset = `0`,
|  | GLsizeiptr | byte_count = `-1`,
|  | bool | discard_local_storage = `false`
| ) |  | `[inline]`

Definition at line 187 of file BufferObject.hpp.

References byteCountBufferObject(), vl::Buffer::clear(), and vl::Buffer::ptr().

void vl::BufferObject::setBufferSubData | ( | GLintptr | offset,
|  | GLsizeiptr | byte_count,
|  | const GLvoid * | data
| ) |  | `[inline]`

Definition at line 198 of file BufferObject.hpp.

References handle(), vl::Has_BufferObject, VL_CHECK, and VL_CHECK_OGL.

void* vl::BufferObject::mapBufferObject | ( | EBufferObjectAccess | access ) | `[inline]`

Definition at line 215 of file BufferObject.hpp.

References createBufferObject(), handle(), vl::Has_BufferObject, NULL, vl::Buffer::ptr(), VL_CHECK, and VL_CHECK_OGL.

Referenced by downloadBufferObject().

bool vl::BufferObject::unmapBufferObject | ( | ) | `[inline]`

Definition at line 241 of file BufferObject.hpp.

References createBufferObject(), handle(), vl::Has_BufferObject, VL_CHECK, and VL_CHECK_OGL.

Referenced by downloadBufferObject().

EBufferObjectUsage vl::BufferObject::usage | ( | ) | const`[inline]`

BufferObject usage flag as specified by setBufferData().

Definition at line 259 of file BufferObject.hpp.

References mUsage.

Referenced by vl::readPixels(), and setBufferData().

## Member Data Documentation

unsigned int vl::BufferObject::mHandle`[protected]`

Definition at line 262 of file BufferObject.hpp.

Referenced by BufferObject(), createBufferObject(), deleteBufferObject(), handle(), setHandle(), and swap().

GLsizeiptr vl::BufferObject::mByteCountBufferObject`[protected]`

Definition at line 263 of file BufferObject.hpp.

Referenced by BufferObject(), byteCountBufferObject(), createBufferObject(), deleteBufferObject(), setBufferData(), and swap().

EBufferObjectUsage vl::BufferObject::mUsage`[protected]`

Definition at line 264 of file BufferObject.hpp.

Referenced by BufferObject(), setBufferData(), swap(), and usage().

The documentation for this class was generated from the following file:

- D:/VL/BuildSystem/VL_DISTRO/Visualization_Library_SDK/src/vlGraphics/BufferObject.hpp

Visualization Library v2011.09.1162 Reference Documentation
Copyright 2005-2011 Michele Bosi. All rights reserved.
Updated on Thu Jan 26 2012 00:44:30.
Permission is granted to use this page to write and publish articles regarding Visualization Library.