VTK
|
abstracts an OpenGL pixel buffer object. More...
#include <vtkPixelBufferObject.h>
Public Types | |
enum | { StreamDraw = 0, StreamRead, StreamCopy, StaticDraw, StaticRead, StaticCopy, DynamicDraw, DynamicRead, DynamicCopy, NumberOfUsages } |
enum | BufferType { PACKED_BUFFER, UNPACKED_BUFFER } |
typedef vtkObject | Superclass |
![]() | |
typedef vtkObjectBase | Superclass |
Public Member Functions | |
virtual const char * | GetClassName () |
virtual int | IsA (const char *type) |
void | PrintSelf (ostream &os, vtkIndent indent) |
void | BindToUnPackedBuffer () |
void | UnBind () |
void | Bind (BufferType buffer) |
void | ReleaseMemory () |
void | SetContext (vtkRenderWindow *context) |
vtkRenderWindow * | GetContext () |
virtual int | GetUsage () |
virtual void | SetUsage (int) |
bool | Upload1D (int type, void *data, unsigned int numtuples, int comps, vtkIdType increment) |
bool | Upload2D (int type, void *data, unsigned int dims[2], int comps, vtkIdType increments[2]) |
bool | Upload3D (int type, void *data, unsigned int dims[3], int comps, vtkIdType increments[3], int components, int *componentList) |
virtual int | GetType () |
virtual unsigned int | GetSize () |
virtual unsigned int | GetHandle () |
bool | Download1D (int type, void *data, unsigned int dim, int numcomps, vtkIdType increment) |
bool | Download2D (int type, void *data, unsigned int dims[2], int numcomps, vtkIdType increments[2]) |
bool | Download3D (int type, void *data, unsigned int dims[3], int numcomps, vtkIdType increments[3]) |
void | BindToPackedBuffer () |
void | Allocate (unsigned int size, int type) |
![]() | |
virtual void | DebugOn () |
virtual void | DebugOff () |
unsigned char | GetDebug () |
void | SetDebug (unsigned char debugFlag) |
virtual void | Modified () |
virtual unsigned long | GetMTime () |
unsigned long | AddObserver (unsigned long event, vtkCommand *, float priority=0.0f) |
unsigned long | AddObserver (const char *event, vtkCommand *, float priority=0.0f) |
vtkCommand * | GetCommand (unsigned long tag) |
void | RemoveObserver (vtkCommand *) |
void | RemoveObservers (unsigned long event, vtkCommand *) |
void | RemoveObservers (const char *event, vtkCommand *) |
int | HasObserver (unsigned long event, vtkCommand *) |
int | HasObserver (const char *event, vtkCommand *) |
void | RemoveObserver (unsigned long tag) |
void | RemoveObservers (unsigned long event) |
void | RemoveObservers (const char *event) |
void | RemoveAllObservers () |
int | HasObserver (unsigned long event) |
int | HasObserver (const char *event) |
template<class U , class T > | |
unsigned long | AddObserver (unsigned long event, U observer, void(T::*callback)(), float priority=0.0f) |
template<class U , class T > | |
unsigned long | AddObserver (unsigned long event, U observer, void(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f) |
int | InvokeEvent (unsigned long event, void *callData) |
int | InvokeEvent (const char *event, void *callData) |
int | InvokeEvent (unsigned long event) |
int | InvokeEvent (const char *event) |
![]() | |
const char * | GetClassName () const |
virtual void | Delete () |
virtual void | FastDelete () |
void | Print (ostream &os) |
virtual void | Register (vtkObjectBase *o) |
virtual void | UnRegister (vtkObjectBase *o) |
void | SetReferenceCount (int) |
void | PrintRevisions (ostream &os) |
virtual void | PrintHeader (ostream &os, vtkIndent indent) |
virtual void | PrintTrailer (ostream &os, vtkIndent indent) |
int | GetReferenceCount () |
Static Public Member Functions | |
static vtkPixelBufferObject * | New () |
static int | IsTypeOf (const char *type) |
static vtkPixelBufferObject * | SafeDownCast (vtkObject *o) |
static bool | IsSupported (vtkRenderWindow *renWin) |
![]() | |
static void | BreakOnError () |
static void | SetGlobalWarningDisplay (int val) |
static void | GlobalWarningDisplayOn () |
static void | GlobalWarningDisplayOff () |
static int | GetGlobalWarningDisplay () |
Protected Member Functions | |
vtkPixelBufferObject () | |
~vtkPixelBufferObject () | |
bool | LoadRequiredExtensions (vtkOpenGLExtensionManager *mgr) |
void | CreateBuffer () |
void | DestroyBuffer () |
![]() | |
vtkObject () | |
virtual | ~vtkObject () |
virtual void | RegisterInternal (vtkObjectBase *, int check) |
virtual void | UnRegisterInternal (vtkObjectBase *, int check) |
void | InternalGrabFocus (vtkCommand *mouseEvents, vtkCommand *keypressEvents=NULL) |
void | InternalReleaseFocus () |
![]() | |
vtkObjectBase () | |
virtual | ~vtkObjectBase () |
virtual void | CollectRevisions (ostream &os) |
virtual void | ReportReferences (vtkGarbageCollector *) |
vtkObjectBase (const vtkObjectBase &) | |
void | operator= (const vtkObjectBase &) |
Protected Attributes | |
int | Usage |
unsigned int | BufferTarget |
int | Type |
unsigned int | Size |
vtkWeakPointer< vtkRenderWindow > | Context |
unsigned int | Handle |
![]() | |
unsigned char | Debug |
vtkTimeStamp | MTime |
vtkSubjectHelper * | SubjectHelper |
![]() | |
int | ReferenceCount |
vtkWeakPointerBase ** | WeakPointers |
abstracts an OpenGL pixel buffer object.
Provides low-level access to GPU memory. Used to pass raw data to GPU. The data is uploaded into a pixel buffer.
Definition at line 38 of file vtkPixelBufferObject.h.
Definition at line 60 of file vtkPixelBufferObject.h.
anonymous enum |
StreamDraw | |
StreamRead | |
StreamCopy | |
StaticDraw | |
StaticRead | |
StaticCopy | |
DynamicDraw | |
DynamicRead | |
DynamicCopy | |
NumberOfUsages |
Definition at line 44 of file vtkPixelBufferObject.h.
Definition at line 227 of file vtkPixelBufferObject.h.
|
protected |
|
protected |
|
static |
Create an object with Debug turned off, modified time initialized to zero, and reference counting on.
Reimplemented from vtkObject.
|
virtual |
Reimplemented from vtkObject.
|
static |
Return 1 if this class type is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeMacro found in vtkSetGet.h.
Reimplemented from vtkObject.
|
virtual |
Return 1 if this class is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeMacro found in vtkSetGet.h.
Reimplemented from vtkObject.
|
static |
Reimplemented from vtkObject.
|
virtual |
void vtkPixelBufferObject::SetContext | ( | vtkRenderWindow * | context | ) |
Get/Set the context. Context must be a vtkOpenGLRenderWindow. This does not increase the reference count of the context to avoid reference loops. SetContext() may raise an error is the OpenGL context does not support the required OpenGL extensions.
vtkRenderWindow* vtkPixelBufferObject::GetContext | ( | ) |
Get/Set the context. Context must be a vtkOpenGLRenderWindow. This does not increase the reference count of the context to avoid reference loops. SetContext() may raise an error is the OpenGL context does not support the required OpenGL extensions.
|
virtual |
Usage is a performance hint. Valid values are: - StreamDraw specified once by A, used few times S - StreamRead specified once by R, queried a few times by A - StreamCopy specified once by R, used a few times S
|
virtual |
Usage is a performance hint. Valid values are: - StreamDraw specified once by A, used few times S - StreamRead specified once by R, queried a few times by A - StreamCopy specified once by R, used a few times S
|
inline |
Upload data to GPU. The input data can be freed after this call. The data ptr is treated as an 1D array with the given number of tuples and given number of components in each tuple to be copied to the GPU. increment is the offset added after the last component in each tuple is transferred. Look at the documentation for ContinuousIncrements in vtkImageData for details about how increments are specified.
Definition at line 95 of file vtkPixelBufferObject.h.
|
inline |
Update data to GPU sourcing it from a 2D array. The input data can be freed after this call. The data ptr is treated as a 2D array with increments indicating how to iterate over the data. Look at the documentation for ContinuousIncrements in vtkImageData for details about how increments are specified.
Definition at line 116 of file vtkPixelBufferObject.h.
bool vtkPixelBufferObject::Upload3D | ( | int | type, |
void * | data, | ||
unsigned int | dims[3], | ||
int | comps, | ||
vtkIdType | increments[3], | ||
int | components, | ||
int * | componentList | ||
) |
Update data to GPU sourcing it from a 3D array. The input data can be freed after this call. The data ptr is treated as a 3D array with increments indicating how to iterate over the data. Look at the documentation for ContinuousIncrements in vtkImageData for details about how increments are specified.
|
virtual |
Get the type with which the data is loaded into the GPU. eg. VTK_FLOAT for float32, VTK_CHAR for byte, VTK_UNSIGNED_CHAR for unsigned byte etc.
|
virtual |
Get the size of the data loaded into the GPU. Size is in the number of elements of the uploaded Type.
|
virtual |
Get the openGL buffer handle.
|
inline |
Download data from pixel buffer to the 1D array. The length of the array must be equal to the size of the data in the memory.
Definition at line 167 of file vtkPixelBufferObject.h.
|
inline |
Download data from pixel buffer to the 2D array. (lengthx * lengthy) must be equal to the size of the data in the memory.
Definition at line 187 of file vtkPixelBufferObject.h.
bool vtkPixelBufferObject::Download3D | ( | int | type, |
void * | data, | ||
unsigned int | dims[3], | ||
int | numcomps, | ||
vtkIdType | increments[3] | ||
) |
Download data from pixel buffer to the 3D array. (lengthx * lengthy * lengthz) must be equal to the size of the data in the memory.
|
inline |
For wrapping.
Definition at line 214 of file vtkPixelBufferObject.h.
|
inline |
Definition at line 218 of file vtkPixelBufferObject.h.
void vtkPixelBufferObject::UnBind | ( | ) |
Inactivate the buffer.
void vtkPixelBufferObject::Bind | ( | BufferType | buffer | ) |
Make the buffer active.
void vtkPixelBufferObject::Allocate | ( | unsigned int | size, |
int | type | ||
) |
Allocate the memory. size is in number of bytes. type is a VTK type.
void vtkPixelBufferObject::ReleaseMemory | ( | ) |
Release the memory allocated without destroying the PBO handle.
|
static |
Returns if the context supports the required extensions.
|
protected |
Loads all required OpenGL extensions. Must be called every time a new context is set.
|
protected |
Create the pixel buffer object.
|
protected |
Destroys the pixel buffer object.
|
protected |
Definition at line 263 of file vtkPixelBufferObject.h.
|
protected |
Definition at line 264 of file vtkPixelBufferObject.h.
|
protected |
Definition at line 265 of file vtkPixelBufferObject.h.
|
protected |
Definition at line 266 of file vtkPixelBufferObject.h.
|
protected |
Definition at line 267 of file vtkPixelBufferObject.h.
|
protected |
Definition at line 268 of file vtkPixelBufferObject.h.