VTK
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
vtkPixelBufferObject Class Reference

abstracts an OpenGL pixel buffer object. More...

#include <vtkPixelBufferObject.h>

Inheritance diagram for vtkPixelBufferObject:
[legend]
Collaboration diagram for vtkPixelBufferObject:
[legend]

Public Types

enum  {
  StreamDraw =0, StreamRead, StreamCopy, StaticDraw,
  StaticRead, StaticCopy, DynamicDraw, DynamicRead,
  DynamicCopy, NumberOfUsages
}
 
enum  BufferType { UNPACKED_BUFFER =0, PACKED_BUFFER, UNPACKED_BUFFER =0, PACKED_BUFFER }
 
enum  {
  StreamDraw =0, StreamRead, StreamCopy, StaticDraw,
  StaticRead, StaticCopy, DynamicDraw, DynamicRead,
  DynamicCopy, NumberOfUsages
}
 
enum  BufferType { UNPACKED_BUFFER =0, PACKED_BUFFER, UNPACKED_BUFFER =0, PACKED_BUFFER }
 
typedef vtkObject Superclass
 
typedef vtkObject Superclass
 

Public Member Functions

virtual int IsA (const char *type)
 Return 1 if this class is the same type of (or a subclass of) the named class. More...
 
vtkPixelBufferObjectNewInstance () const
 
void PrintSelf (ostream &os, vtkIndent indent) override
 Methods invoked by print to print information about the object including superclasses. More...
 
bool Upload3D (int type, void *data, unsigned int dims[3], int comps, vtkIdType increments[3], int components, int *componentList)
 Update data to PBO mapped sourcing it from a 3D array. More...
 
bool Download3D (int type, void *data, unsigned int dims[3], int numcomps, vtkIdType increments[3])
 Download data from pixel buffer to the 3D array. More...
 
void BindToPackedBuffer ()
 Convenience methods for binding. More...
 
void BindToUnPackedBuffer ()
 
void UnBind ()
 Inactivate the buffer. More...
 
void * MapPackedBuffer ()
 Convenience api for mapping buffers to app address space. More...
 
void * MapPackedBuffer (int type, unsigned int numtuples, int comps)
 
void * MapPackedBuffer (unsigned int numbytes)
 
void * MapUnpackedBuffer ()
 
void * MapUnpackedBuffer (int type, unsigned int numtuples, int comps)
 
void * MapUnpackedBuffer (unsigned int numbytes)
 
void UnmapUnpackedBuffer ()
 Convenience api for unmapping buffers from app address space. More...
 
void UnmapPackedBuffer ()
 
void Bind (BufferType buffer)
 Make the buffer active. More...
 
void UnmapBuffer (BufferType mode)
 Un-map the buffer from our address space, OpenGL can then use/reclaim the buffer contents. More...
 
void Allocate (int vtkType, unsigned int numtuples, int comps, BufferType mode)
 Allocate PACKED/UNPACKED memory to hold numTuples*numComponents of vtkType. More...
 
void Allocate (unsigned int nbytes, BufferType mode)
 Allocate PACKED/UNPACKED memory to hold nBytes of data. More...
 
void ReleaseMemory ()
 Release the memory allocated without destroying the PBO handle. More...
 
virtual int IsA (const char *type)
 Return 1 if this class is the same type of (or a subclass of) the named class. More...
 
vtkPixelBufferObjectNewInstance () const
 
void PrintSelf (ostream &os, vtkIndent indent) override
 Methods invoked by print to print information about the object including superclasses. More...
 
bool Upload3D (int type, void *data, unsigned int dims[3], int comps, vtkIdType increments[3], int components, int *componentList)
 Update data to PBO mapped sourcing it from a 3D array. More...
 
bool Download3D (int type, void *data, unsigned int dims[3], int numcomps, vtkIdType increments[3])
 Download data from pixel buffer to the 3D array. More...
 
void BindToPackedBuffer ()
 Convenience methods for binding. More...
 
void BindToUnPackedBuffer ()
 
void UnBind ()
 Inactivate the buffer. More...
 
void * MapPackedBuffer ()
 Convenience api for mapping buffers to app address space. More...
 
void * MapPackedBuffer (int type, unsigned int numtuples, int comps)
 
void * MapPackedBuffer (unsigned int numbytes)
 
void * MapUnpackedBuffer ()
 
void * MapUnpackedBuffer (int type, unsigned int numtuples, int comps)
 
void * MapUnpackedBuffer (unsigned int numbytes)
 
void UnmapUnpackedBuffer ()
 Convenience api for unmapping buffers from app address space. More...
 
void UnmapPackedBuffer ()
 
void Bind (BufferType buffer)
 Make the buffer active. More...
 
void UnmapBuffer (BufferType mode)
 Un-map the buffer from our address space, OpenGL can then use/reclaim the buffer contents. More...
 
void Allocate (int vtkType, unsigned int numtuples, int comps, BufferType mode)
 Allocate PACKED/UNPACKED memory to hold numTuples*numComponents of vtkType. More...
 
void Allocate (unsigned int nbytes, BufferType mode)
 Allocate PACKED/UNPACKED memory to hold nBytes of data. More...
 
void ReleaseMemory ()
 Release the memory allocated without destroying the PBO handle. More...
 
void SetContext (vtkRenderWindow *context)
 Get/Set the context. More...
 
vtkRenderWindowGetContext ()
 Get/Set the context. More...
 
virtual int GetUsage ()
 Usage is a performance hint. More...
 
virtual void SetUsage (int)
 Usage is a performance hint. More...
 
bool Upload1D (int type, void *data, unsigned int numtuples, int comps, vtkIdType increment)
 Upload data to PBO mapped. More...
 
bool Upload2D (int type, void *data, unsigned int dims[2], int comps, vtkIdType increments[2])
 Update data to PBO mapped sourcing it from a 2D array. More...
 
virtual int GetType ()
 Get the type with which the data is loaded into the PBO mapped. More...
 
virtual void SetType (int)
 Get the type with which the data is loaded into the PBO mapped. More...
 
virtual int GetComponents ()
 Get the number of components used to initialize the buffer. More...
 
virtual void SetComponents (int)
 Get the number of components used to initialize the buffer. More...
 
virtual unsigned int GetSize ()
 Get the size of the data loaded into the PBO mapped memory. More...
 
virtual void SetSize (unsigned int)
 Get the size of the data loaded into the PBO mapped memory. More...
 
void SetSize (unsigned int nTups, int nComps)
 Get the size of the data loaded into the PBO mapped memory. More...
 
virtual unsigned int GetHandle ()
 Get the openGL buffer handle. More...
 
bool Download1D (int type, void *data, unsigned int dim, int numcomps, vtkIdType increment)
 Download data from pixel buffer to the 1D array. More...
 
bool Download2D (int type, void *data, unsigned int dims[2], int numcomps, vtkIdType increments[2])
 Download data from pixel buffer to the 2D array. More...
 
void * MapBuffer (int type, unsigned int numtuples, int comps, BufferType mode)
 Map the buffer to our addresspace. More...
 
void * MapBuffer (unsigned int numbytes, BufferType mode)
 Map the buffer to our addresspace. More...
 
void * MapBuffer (BufferType mode)
 Map the buffer to our addresspace. More...
 
void SetContext (vtkRenderWindow *context)
 Get/Set the context. More...
 
vtkRenderWindowGetContext ()
 Get/Set the context. More...
 
virtual int GetUsage ()
 Usage is a performance hint. More...
 
virtual void SetUsage (int)
 Usage is a performance hint. More...
 
bool Upload1D (int type, void *data, unsigned int numtuples, int comps, vtkIdType increment)
 Upload data to PBO mapped. More...
 
bool Upload2D (int type, void *data, unsigned int dims[2], int comps, vtkIdType increments[2])
 Update data to PBO mapped sourcing it from a 2D array. More...
 
virtual int GetType ()
 Get the type with which the data is loaded into the PBO mapped. More...
 
virtual void SetType (int)
 Get the type with which the data is loaded into the PBO mapped. More...
 
virtual int GetComponents ()
 Get the number of components used to initialize the buffer. More...
 
virtual void SetComponents (int)
 Get the number of components used to initialize the buffer. More...
 
virtual unsigned int GetSize ()
 Get the size of the data loaded into the PBO mapped memory. More...
 
virtual void SetSize (unsigned int)
 Get the size of the data loaded into the PBO mapped memory. More...
 
void SetSize (unsigned int nTups, int nComps)
 Get the size of the data loaded into the PBO mapped memory. More...
 
virtual unsigned int GetHandle ()
 Get the openGL buffer handle. More...
 
bool Download1D (int type, void *data, unsigned int dim, int numcomps, vtkIdType increment)
 Download data from pixel buffer to the 1D array. More...
 
bool Download2D (int type, void *data, unsigned int dims[2], int numcomps, vtkIdType increments[2])
 Download data from pixel buffer to the 2D array. More...
 
void * MapBuffer (int type, unsigned int numtuples, int comps, BufferType mode)
 Map the buffer to our addresspace. More...
 
void * MapBuffer (unsigned int numbytes, BufferType mode)
 Map the buffer to our addresspace. More...
 
void * MapBuffer (BufferType mode)
 Map the buffer to our addresspace. More...
 
- Public Member Functions inherited from vtkObject
 vtkBaseTypeMacro (vtkObject, vtkObjectBase)
 
virtual void DebugOn ()
 Turn debugging output on. More...
 
virtual void DebugOff ()
 Turn debugging output off. More...
 
bool GetDebug ()
 Get the value of the debug flag. More...
 
void SetDebug (bool debugFlag)
 Set the value of the debug flag. More...
 
virtual void Modified ()
 Update the modification time for this object. More...
 
virtual vtkMTimeType GetMTime ()
 Return this object's modified time. More...
 
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)
 
int InvokeEvent (unsigned long event)
 
int InvokeEvent (const char *event)
 
unsigned long AddObserver (unsigned long event, vtkCommand *, float priority=0.0f)
 Allow people to add/remove/invoke observers (callbacks) to any VTK object. More...
 
unsigned long AddObserver (const char *event, vtkCommand *, float priority=0.0f)
 Allow people to add/remove/invoke observers (callbacks) to any VTK object. More...
 
vtkCommandGetCommand (unsigned long tag)
 Allow people to add/remove/invoke observers (callbacks) to any VTK object. More...
 
void RemoveObserver (vtkCommand *)
 Allow people to add/remove/invoke observers (callbacks) to any VTK object. More...
 
void RemoveObservers (unsigned long event, vtkCommand *)
 Allow people to add/remove/invoke observers (callbacks) to any VTK object. More...
 
void RemoveObservers (const char *event, vtkCommand *)
 Allow people to add/remove/invoke observers (callbacks) to any VTK object. More...
 
int HasObserver (unsigned long event, vtkCommand *)
 Allow people to add/remove/invoke observers (callbacks) to any VTK object. More...
 
int HasObserver (const char *event, vtkCommand *)
 Allow people to add/remove/invoke observers (callbacks) to any VTK object. More...
 
template<class U , class T >
unsigned long AddObserver (unsigned long event, U observer, void(T::*callback)(), float priority=0.0f)
 Overloads to AddObserver that allow developers to add class member functions as callbacks for events. More...
 
template<class U , class T >
unsigned long AddObserver (unsigned long event, U observer, void(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f)
 Overloads to AddObserver that allow developers to add class member functions as callbacks for events. More...
 
template<class U , class T >
unsigned long AddObserver (unsigned long event, U observer, bool(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f)
 Allow user to set the AbortFlagOn() with the return value of the callback method. More...
 
int InvokeEvent (unsigned long event, void *callData)
 This method invokes an event and return whether the event was aborted or not. More...
 
int InvokeEvent (const char *event, void *callData)
 This method invokes an event and return whether the event was aborted or not. More...
 
- Public Member Functions inherited from vtkObjectBase
const char * GetClassName () const
 Return the class name as a string. More...
 
virtual void Delete ()
 Delete a VTK object. More...
 
virtual void FastDelete ()
 Delete a reference to this object. More...
 
void InitializeObjectBase ()
 
void Print (ostream &os)
 Print an object to an ostream. More...
 
virtual void Register (vtkObjectBase *o)
 Increase the reference count (mark as used by another object). More...
 
virtual void UnRegister (vtkObjectBase *o)
 Decrease the reference count (release by another object). More...
 
int GetReferenceCount ()
 Return the current reference count of this object. More...
 
void SetReferenceCount (int)
 Sets the reference count. More...
 
void PrintRevisions (ostream &)
 Legacy. More...
 
virtual void PrintHeader (ostream &os, vtkIndent indent)
 Methods invoked by print to print information about the object including superclasses. More...
 
virtual void PrintTrailer (ostream &os, vtkIndent indent)
 Methods invoked by print to print information about the object including superclasses. More...
 

Static Public Member Functions

static vtkPixelBufferObjectNew ()
 
static int IsTypeOf (const char *type)
 
static vtkPixelBufferObjectSafeDownCast (vtkObjectBase *o)
 
static bool IsSupported (vtkRenderWindow *renWin)
 Returns if the context supports the required extensions. More...
 
static vtkPixelBufferObjectNew ()
 
static int IsTypeOf (const char *type)
 
static vtkPixelBufferObjectSafeDownCast (vtkObjectBase *o)
 
static bool IsSupported (vtkRenderWindow *renWin)
 Returns if the context supports the required extensions. More...
 
- Static Public Member Functions inherited from vtkObject
static vtkObjectNew ()
 Create an object with Debug turned off, modified time initialized to zero, and reference counting on. More...
 
static void BreakOnError ()
 This method is called when vtkErrorMacro executes. More...
 
static void SetGlobalWarningDisplay (int val)
 This is a global flag that controls whether any debug, warning or error messages are displayed. More...
 
static void GlobalWarningDisplayOn ()
 This is a global flag that controls whether any debug, warning or error messages are displayed. More...
 
static void GlobalWarningDisplayOff ()
 This is a global flag that controls whether any debug, warning or error messages are displayed. More...
 
static int GetGlobalWarningDisplay ()
 This is a global flag that controls whether any debug, warning or error messages are displayed. More...
 
- Static Public Member Functions inherited from vtkObjectBase
static vtkTypeBool IsTypeOf (const char *name)
 Return 1 if this class type is the same type of (or a subclass of) the named class. More...
 
static vtkObjectBaseNew ()
 Create an object with Debug turned off, modified time initialized to zero, and reference counting on. More...
 

Protected Member Functions

virtual vtkObjectBaseNewInstanceInternal () const
 
 vtkPixelBufferObject ()
 
 ~vtkPixelBufferObject () override
 
bool LoadRequiredExtensions (vtkRenderWindow *renWin)
 Loads all required OpenGL extensions. More...
 
void CreateBuffer ()
 Create the pixel buffer object. More...
 
void DestroyBuffer ()
 Destroys the pixel buffer object. More...
 
virtual vtkObjectBaseNewInstanceInternal () const
 
 vtkPixelBufferObject ()
 
 ~vtkPixelBufferObject () override
 
bool LoadRequiredExtensions (vtkRenderWindow *renWin)
 Loads all required OpenGL extensions. More...
 
void CreateBuffer ()
 Create the pixel buffer object. More...
 
void DestroyBuffer ()
 Destroys the pixel buffer object. More...
 
- Protected Member Functions inherited from vtkObject
 vtkObject ()
 
 ~vtkObject () override
 
void RegisterInternal (vtkObjectBase *, vtkTypeBool check) override
 
void UnRegisterInternal (vtkObjectBase *, vtkTypeBool check) override
 
void InternalGrabFocus (vtkCommand *mouseEvents, vtkCommand *keypressEvents=nullptr)
 These methods allow a command to exclusively grab all events. More...
 
void InternalReleaseFocus ()
 These methods allow a command to exclusively grab all events. More...
 
- Protected Member Functions inherited from vtkObjectBase
 vtkObjectBase ()
 
virtual ~vtkObjectBase ()
 
virtual void CollectRevisions (ostream &)
 
virtual void ReportReferences (vtkGarbageCollector *)
 
 vtkObjectBase (const vtkObjectBase &)
 
void operator= (const vtkObjectBase &)
 

Protected Attributes

int Usage
 
unsigned int BufferTarget
 
int Type
 
int Components
 
unsigned int Size
 
vtkWeakPointer< vtkRenderWindowContext
 
unsigned int Handle
 
- Protected Attributes inherited from vtkObject
bool Debug
 
vtkTimeStamp MTime
 
vtkSubjectHelper * SubjectHelper
 
- Protected Attributes inherited from vtkObjectBase
vtkAtomicInt32 ReferenceCount
 
vtkWeakPointerBase ** WeakPointers
 

Detailed Description

abstracts an OpenGL pixel buffer object.

Provides low-level access to PBO mapped memory. Used to transfer raw data to/from PBO mapped memory and the application. Once data is transferred to the PBO it can then be transferred to the GPU (eg texture memory). Data may be uploaded from the application into a pixel buffer or downloaded from the pixel bufer to the application. The vtkTextureObject is used to transfer data from/to the PBO to/from texture memory on the GPU.

See also
OpenGL Pixel Buffer Object Extension Spec (ARB_pixel_buffer_object): http://www.opengl.org/registry/specs/ARB/pixel_buffer_object.txt
Warning
Since most PBO mappeds don't support double format all double data is converted to float and then uploaded.

Definition at line 43 of file vtkPixelBufferObject.h.

Member Typedef Documentation

Definition at line 63 of file vtkPixelBufferObject.h.

Definition at line 63 of file vtkPixelBufferObject.h.

Member Enumeration Documentation

anonymous enum
Enumerator
StreamDraw 
StreamRead 
StreamCopy 
StaticDraw 
StaticRead 
StaticCopy 
DynamicDraw 
DynamicRead 
DynamicCopy 
NumberOfUsages 

Definition at line 48 of file vtkPixelBufferObject.h.

Enumerator
UNPACKED_BUFFER 
PACKED_BUFFER 
UNPACKED_BUFFER 
PACKED_BUFFER 

Definition at line 301 of file vtkPixelBufferObject.h.

anonymous enum
Enumerator
StreamDraw 
StreamRead 
StreamCopy 
StaticDraw 
StaticRead 
StaticCopy 
DynamicDraw 
DynamicRead 
DynamicCopy 
NumberOfUsages 

Definition at line 48 of file vtkPixelBufferObject.h.

Enumerator
UNPACKED_BUFFER 
PACKED_BUFFER 
UNPACKED_BUFFER 
PACKED_BUFFER 

Definition at line 301 of file vtkPixelBufferObject.h.

Constructor & Destructor Documentation

vtkPixelBufferObject::vtkPixelBufferObject ( )
protected
vtkPixelBufferObject::~vtkPixelBufferObject ( )
overrideprotected
vtkPixelBufferObject::vtkPixelBufferObject ( )
protected
vtkPixelBufferObject::~vtkPixelBufferObject ( )
overrideprotected

Member Function Documentation

static vtkPixelBufferObject* vtkPixelBufferObject::New ( )
static
static int vtkPixelBufferObject::IsTypeOf ( const char *  type)
static
virtual int vtkPixelBufferObject::IsA ( const char *  name)
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 vtkObjectBase.

static vtkPixelBufferObject* vtkPixelBufferObject::SafeDownCast ( vtkObjectBase o)
static
virtual vtkObjectBase* vtkPixelBufferObject::NewInstanceInternal ( ) const
protectedvirtual
vtkPixelBufferObject* vtkPixelBufferObject::NewInstance ( ) const
void vtkPixelBufferObject::PrintSelf ( ostream &  os,
vtkIndent  indent 
)
overridevirtual

Methods invoked by print to print information about the object including superclasses.

Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.

Reimplemented from vtkObject.

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 int vtkPixelBufferObject::GetUsage ( )
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
  • StaticDraw specified once by A, used many times S
  • StaticRead specificed once by R, queried many times by A
  • StaticCopy specified once by R, used many times S
  • DynamicDraw respecified repeatedly by A, used many times S
  • DynamicRead respecified repeatedly by R, queried many times by A
  • DynamicCopy respecified repeatedly by R, used many times S A: the application S: as the source for GL drawing and image specification commands. R: reading data from the GL Initial value is StaticDraw, as in OpenGL spec.
virtual void vtkPixelBufferObject::SetUsage ( int  )
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
  • StaticDraw specified once by A, used many times S
  • StaticRead specificed once by R, queried many times by A
  • StaticCopy specified once by R, used many times S
  • DynamicDraw respecified repeatedly by A, used many times S
  • DynamicRead respecified repeatedly by R, queried many times by A
  • DynamicCopy respecified repeatedly by R, used many times S A: the application S: as the source for GL drawing and image specification commands. R: reading data from the GL Initial value is StaticDraw, as in OpenGL spec.
bool vtkPixelBufferObject::Upload1D ( int  type,
void *  data,
unsigned int  numtuples,
int  comps,
vtkIdType  increment 
)
inline

Upload data to PBO mapped.

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 PBO mapped. 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 110 of file vtkPixelBufferObject.h.

bool vtkPixelBufferObject::Upload2D ( int  type,
void *  data,
unsigned int  dims[2],
int  comps,
vtkIdType  increments[2] 
)
inline

Update data to PBO mapped 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 134 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 PBO mapped 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 int vtkPixelBufferObject::GetType ( )
virtual

Get the type with which the data is loaded into the PBO mapped.

eg. VTK_FLOAT for float32, VTK_CHAR for byte, VTK_UNSIGNED_CHAR for unsigned byte etc.

virtual void vtkPixelBufferObject::SetType ( int  )
virtual

Get the type with which the data is loaded into the PBO mapped.

eg. VTK_FLOAT for float32, VTK_CHAR for byte, VTK_UNSIGNED_CHAR for unsigned byte etc.

virtual int vtkPixelBufferObject::GetComponents ( )
virtual

Get the number of components used to initialize the buffer.

virtual void vtkPixelBufferObject::SetComponents ( int  )
virtual

Get the number of components used to initialize the buffer.

virtual unsigned int vtkPixelBufferObject::GetSize ( )
virtual

Get the size of the data loaded into the PBO mapped memory.

Size is in the number of elements of the uploaded Type.

virtual void vtkPixelBufferObject::SetSize ( unsigned  int)
virtual

Get the size of the data loaded into the PBO mapped memory.

Size is in the number of elements of the uploaded Type.

void vtkPixelBufferObject::SetSize ( unsigned int  nTups,
int  nComps 
)

Get the size of the data loaded into the PBO mapped memory.

Size is in the number of elements of the uploaded Type.

virtual unsigned int vtkPixelBufferObject::GetHandle ( )
virtual

Get the openGL buffer handle.

bool vtkPixelBufferObject::Download1D ( int  type,
void *  data,
unsigned int  dim,
int  numcomps,
vtkIdType  increment 
)
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 205 of file vtkPixelBufferObject.h.

bool vtkPixelBufferObject::Download2D ( int  type,
void *  data,
unsigned int  dims[2],
int  numcomps,
vtkIdType  increments[2] 
)
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 227 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.

void vtkPixelBufferObject::BindToPackedBuffer ( )
inline

Convenience methods for binding.

Definition at line 256 of file vtkPixelBufferObject.h.

void vtkPixelBufferObject::BindToUnPackedBuffer ( )
inline

Definition at line 259 of file vtkPixelBufferObject.h.

void vtkPixelBufferObject::UnBind ( )

Inactivate the buffer.

void* vtkPixelBufferObject::MapPackedBuffer ( )
inline

Convenience api for mapping buffers to app address space.

See also MapBuffer.

Definition at line 271 of file vtkPixelBufferObject.h.

void* vtkPixelBufferObject::MapPackedBuffer ( int  type,
unsigned int  numtuples,
int  comps 
)
inline

Definition at line 274 of file vtkPixelBufferObject.h.

void* vtkPixelBufferObject::MapPackedBuffer ( unsigned int  numbytes)
inline

Definition at line 277 of file vtkPixelBufferObject.h.

void* vtkPixelBufferObject::MapUnpackedBuffer ( )
inline

Definition at line 280 of file vtkPixelBufferObject.h.

void* vtkPixelBufferObject::MapUnpackedBuffer ( int  type,
unsigned int  numtuples,
int  comps 
)
inline

Definition at line 283 of file vtkPixelBufferObject.h.

void* vtkPixelBufferObject::MapUnpackedBuffer ( unsigned int  numbytes)
inline

Definition at line 286 of file vtkPixelBufferObject.h.

void vtkPixelBufferObject::UnmapUnpackedBuffer ( )
inline

Convenience api for unmapping buffers from app address space.

See also UnmapBuffer.

Definition at line 293 of file vtkPixelBufferObject.h.

void vtkPixelBufferObject::UnmapPackedBuffer ( )
inline

Definition at line 296 of file vtkPixelBufferObject.h.

void vtkPixelBufferObject::Bind ( BufferType  buffer)

Make the buffer active.

void* vtkPixelBufferObject::MapBuffer ( int  type,
unsigned int  numtuples,
int  comps,
BufferType  mode 
)

Map the buffer to our addresspace.

Returns a pointer to the mapped memory for read/write access. If type, tuples and components are specified new buffer data will be allocated, else the current allocation is mapped. When finished call UnmapBuffer.

void* vtkPixelBufferObject::MapBuffer ( unsigned int  numbytes,
BufferType  mode 
)

Map the buffer to our addresspace.

Returns a pointer to the mapped memory for read/write access. If type, tuples and components are specified new buffer data will be allocated, else the current allocation is mapped. When finished call UnmapBuffer.

void* vtkPixelBufferObject::MapBuffer ( BufferType  mode)

Map the buffer to our addresspace.

Returns a pointer to the mapped memory for read/write access. If type, tuples and components are specified new buffer data will be allocated, else the current allocation is mapped. When finished call UnmapBuffer.

void vtkPixelBufferObject::UnmapBuffer ( BufferType  mode)

Un-map the buffer from our address space, OpenGL can then use/reclaim the buffer contents.

void vtkPixelBufferObject::Allocate ( int  vtkType,
unsigned int  numtuples,
int  comps,
BufferType  mode 
)

Allocate PACKED/UNPACKED memory to hold numTuples*numComponents of vtkType.

void vtkPixelBufferObject::Allocate ( unsigned int  nbytes,
BufferType  mode 
)

Allocate PACKED/UNPACKED memory to hold nBytes of data.

void vtkPixelBufferObject::ReleaseMemory ( )

Release the memory allocated without destroying the PBO handle.

static bool vtkPixelBufferObject::IsSupported ( vtkRenderWindow renWin)
static

Returns if the context supports the required extensions.

Extension will be loaded when the conetxt is set.

bool vtkPixelBufferObject::LoadRequiredExtensions ( vtkRenderWindow renWin)
protected

Loads all required OpenGL extensions.

Must be called every time a new context is set.

void vtkPixelBufferObject::CreateBuffer ( )
protected

Create the pixel buffer object.

void vtkPixelBufferObject::DestroyBuffer ( )
protected

Destroys the pixel buffer object.

static vtkPixelBufferObject* vtkPixelBufferObject::New ( )
static
static int vtkPixelBufferObject::IsTypeOf ( const char *  type)
static
virtual int vtkPixelBufferObject::IsA ( const char *  name)
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 vtkObjectBase.

static vtkPixelBufferObject* vtkPixelBufferObject::SafeDownCast ( vtkObjectBase o)
static
virtual vtkObjectBase* vtkPixelBufferObject::NewInstanceInternal ( ) const
protectedvirtual
vtkPixelBufferObject* vtkPixelBufferObject::NewInstance ( ) const
void vtkPixelBufferObject::PrintSelf ( ostream &  os,
vtkIndent  indent 
)
overridevirtual

Methods invoked by print to print information about the object including superclasses.

Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.

Reimplemented from vtkObject.

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 int vtkPixelBufferObject::GetUsage ( )
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
  • StaticDraw specified once by A, used many times S
  • StaticRead specificed once by R, queried many times by A
  • StaticCopy specified once by R, used many times S
  • DynamicDraw respecified repeatedly by A, used many times S
  • DynamicRead respecified repeatedly by R, queried many times by A
  • DynamicCopy respecified repeatedly by R, used many times S A: the application S: as the source for GL drawing and image specification commands. R: reading data from the GL Initial value is StaticDraw, as in OpenGL spec.
virtual void vtkPixelBufferObject::SetUsage ( int  )
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
  • StaticDraw specified once by A, used many times S
  • StaticRead specificed once by R, queried many times by A
  • StaticCopy specified once by R, used many times S
  • DynamicDraw respecified repeatedly by A, used many times S
  • DynamicRead respecified repeatedly by R, queried many times by A
  • DynamicCopy respecified repeatedly by R, used many times S A: the application S: as the source for GL drawing and image specification commands. R: reading data from the GL Initial value is StaticDraw, as in OpenGL spec.
bool vtkPixelBufferObject::Upload1D ( int  type,
void *  data,
unsigned int  numtuples,
int  comps,
vtkIdType  increment 
)
inline

Upload data to PBO mapped.

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 PBO mapped. 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 110 of file vtkPixelBufferObject.h.

bool vtkPixelBufferObject::Upload2D ( int  type,
void *  data,
unsigned int  dims[2],
int  comps,
vtkIdType  increments[2] 
)
inline

Update data to PBO mapped 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 134 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 PBO mapped 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 int vtkPixelBufferObject::GetType ( )
virtual

Get the type with which the data is loaded into the PBO mapped.

eg. VTK_FLOAT for float32, VTK_CHAR for byte, VTK_UNSIGNED_CHAR for unsigned byte etc.

virtual void vtkPixelBufferObject::SetType ( int  )
virtual

Get the type with which the data is loaded into the PBO mapped.

eg. VTK_FLOAT for float32, VTK_CHAR for byte, VTK_UNSIGNED_CHAR for unsigned byte etc.

virtual int vtkPixelBufferObject::GetComponents ( )
virtual

Get the number of components used to initialize the buffer.

virtual void vtkPixelBufferObject::SetComponents ( int  )
virtual

Get the number of components used to initialize the buffer.

virtual unsigned int vtkPixelBufferObject::GetSize ( )
virtual

Get the size of the data loaded into the PBO mapped memory.

Size is in the number of elements of the uploaded Type.

virtual void vtkPixelBufferObject::SetSize ( unsigned  int)
virtual

Get the size of the data loaded into the PBO mapped memory.

Size is in the number of elements of the uploaded Type.

void vtkPixelBufferObject::SetSize ( unsigned int  nTups,
int  nComps 
)

Get the size of the data loaded into the PBO mapped memory.

Size is in the number of elements of the uploaded Type.

virtual unsigned int vtkPixelBufferObject::GetHandle ( )
virtual

Get the openGL buffer handle.

bool vtkPixelBufferObject::Download1D ( int  type,
void *  data,
unsigned int  dim,
int  numcomps,
vtkIdType  increment 
)
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 205 of file vtkPixelBufferObject.h.

bool vtkPixelBufferObject::Download2D ( int  type,
void *  data,
unsigned int  dims[2],
int  numcomps,
vtkIdType  increments[2] 
)
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 227 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.

void vtkPixelBufferObject::BindToPackedBuffer ( )
inline

Convenience methods for binding.

Definition at line 256 of file vtkPixelBufferObject.h.

void vtkPixelBufferObject::BindToUnPackedBuffer ( )
inline

Definition at line 259 of file vtkPixelBufferObject.h.

void vtkPixelBufferObject::UnBind ( )

Inactivate the buffer.

void* vtkPixelBufferObject::MapPackedBuffer ( )
inline

Convenience api for mapping buffers to app address space.

See also MapBuffer.

Definition at line 271 of file vtkPixelBufferObject.h.

void* vtkPixelBufferObject::MapPackedBuffer ( int  type,
unsigned int  numtuples,
int  comps 
)
inline

Definition at line 274 of file vtkPixelBufferObject.h.

void* vtkPixelBufferObject::MapPackedBuffer ( unsigned int  numbytes)
inline

Definition at line 277 of file vtkPixelBufferObject.h.

void* vtkPixelBufferObject::MapUnpackedBuffer ( )
inline

Definition at line 280 of file vtkPixelBufferObject.h.

void* vtkPixelBufferObject::MapUnpackedBuffer ( int  type,
unsigned int  numtuples,
int  comps 
)
inline

Definition at line 283 of file vtkPixelBufferObject.h.

void* vtkPixelBufferObject::MapUnpackedBuffer ( unsigned int  numbytes)
inline

Definition at line 286 of file vtkPixelBufferObject.h.

void vtkPixelBufferObject::UnmapUnpackedBuffer ( )
inline

Convenience api for unmapping buffers from app address space.

See also UnmapBuffer.

Definition at line 293 of file vtkPixelBufferObject.h.

void vtkPixelBufferObject::UnmapPackedBuffer ( )
inline

Definition at line 296 of file vtkPixelBufferObject.h.

void vtkPixelBufferObject::Bind ( BufferType  buffer)

Make the buffer active.

void* vtkPixelBufferObject::MapBuffer ( int  type,
unsigned int  numtuples,
int  comps,
BufferType  mode 
)

Map the buffer to our addresspace.

Returns a pointer to the mapped memory for read/write access. If type, tuples and components are specified new buffer data will be allocated, else the current allocation is mapped. When finished call UnmapBuffer.

void* vtkPixelBufferObject::MapBuffer ( unsigned int  numbytes,
BufferType  mode 
)

Map the buffer to our addresspace.

Returns a pointer to the mapped memory for read/write access. If type, tuples and components are specified new buffer data will be allocated, else the current allocation is mapped. When finished call UnmapBuffer.

void* vtkPixelBufferObject::MapBuffer ( BufferType  mode)

Map the buffer to our addresspace.

Returns a pointer to the mapped memory for read/write access. If type, tuples and components are specified new buffer data will be allocated, else the current allocation is mapped. When finished call UnmapBuffer.

void vtkPixelBufferObject::UnmapBuffer ( BufferType  mode)

Un-map the buffer from our address space, OpenGL can then use/reclaim the buffer contents.

void vtkPixelBufferObject::Allocate ( int  vtkType,
unsigned int  numtuples,
int  comps,
BufferType  mode 
)

Allocate PACKED/UNPACKED memory to hold numTuples*numComponents of vtkType.

void vtkPixelBufferObject::Allocate ( unsigned int  nbytes,
BufferType  mode 
)

Allocate PACKED/UNPACKED memory to hold nBytes of data.

void vtkPixelBufferObject::ReleaseMemory ( )

Release the memory allocated without destroying the PBO handle.

static bool vtkPixelBufferObject::IsSupported ( vtkRenderWindow renWin)
static

Returns if the context supports the required extensions.

Extension will be loaded when the conetxt is set.

bool vtkPixelBufferObject::LoadRequiredExtensions ( vtkRenderWindow renWin)
protected

Loads all required OpenGL extensions.

Must be called every time a new context is set.

void vtkPixelBufferObject::CreateBuffer ( )
protected

Create the pixel buffer object.

void vtkPixelBufferObject::DestroyBuffer ( )
protected

Destroys the pixel buffer object.

Member Data Documentation

int vtkPixelBufferObject::Usage
protected

Definition at line 376 of file vtkPixelBufferObject.h.

unsigned int vtkPixelBufferObject::BufferTarget
protected

Definition at line 377 of file vtkPixelBufferObject.h.

int vtkPixelBufferObject::Type
protected

Definition at line 378 of file vtkPixelBufferObject.h.

int vtkPixelBufferObject::Components
protected

Definition at line 379 of file vtkPixelBufferObject.h.

unsigned int vtkPixelBufferObject::Size
protected

Definition at line 380 of file vtkPixelBufferObject.h.

vtkWeakPointer< vtkRenderWindow > vtkPixelBufferObject::Context
protected

Definition at line 381 of file vtkPixelBufferObject.h.

unsigned int vtkPixelBufferObject::Handle
protected

Definition at line 382 of file vtkPixelBufferObject.h.


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