33#ifndef vtkPixelBufferObject_h
34#define vtkPixelBufferObject_h
37#include "vtkRenderingOpenGL2Module.h"
41class vtkOpenGLExtensionManager;
111 unsigned int newdims[3];
112 newdims[0] = numtuples;
116 newinc[0] = increment;
119 return this->
Upload3D(type, data, newdims, comps, newinc, 0,
nullptr);
134 unsigned int newdims[3];
135 newdims[0] = dims[0];
136 newdims[1] = dims[1];
139 newinc[0] = increments[0];
140 newinc[1] = increments[1];
142 return this->
Upload3D(type, data, newdims, comps, newinc, 0,
nullptr);
155 int components,
int* componentList);
180 vtkGetMacro(
Size,
unsigned int);
181 vtkSetMacro(
Size,
unsigned int);
199 unsigned int newdims[3];
204 newincrements[0] = increment;
205 newincrements[1] = 0;
206 newincrements[2] = 0;
207 return this->
Download3D(type, data, newdims, numcomps, newincrements);
218 unsigned int newdims[3];
219 newdims[0] = dims[0];
220 newdims[1] = dims[1];
223 newincrements[0] = increments[0];
224 newincrements[1] = increments[1];
225 newincrements[2] = 0;
226 return this->
Download3D(type, data, newdims, numcomps, newincrements);
236 int type,
void* data,
unsigned int dims[3],
int numcomps,
vtkIdType increments[3]);
a simple class to control print indentation
void SetSize(unsigned int nTups, int nComps)
Get the size of the data loaded into the PBO mapped memory.
static bool IsSupported(vtkRenderWindow *renWin)
Returns if the context supports the required extensions.
void * MapBuffer(int type, unsigned int numtuples, int comps, BufferType mode)
Map the buffer to our addresspace.
void DestroyBuffer()
Destroys the pixel buffer object.
vtkRenderWindow * GetContext()
Get/Set the context.
void UnmapUnpackedBuffer()
Convenience api for unmapping buffers from app address space.
void Allocate(unsigned int nbytes, BufferType mode)
Allocate PACKED/UNPACKED memory to hold nBytes of data.
void UnBind()
Deactivate the buffer.
void Bind(BufferType buffer)
Make the buffer active.
bool Download2D(int type, void *data, unsigned int dims[2], int numcomps, vtkIdType increments[2])
Download data from pixel buffer to the 2D array.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
bool LoadRequiredExtensions(vtkRenderWindow *renWin)
Loads all required OpenGL extensions.
void * MapBuffer(unsigned int numbytes, BufferType mode)
Map the buffer to our addresspace.
void * MapBuffer(BufferType mode)
Map the buffer to our addresspace.
void * MapUnpackedBuffer(int type, unsigned int numtuples, int comps)
bool Download3D(int type, void *data, unsigned int dims[3], int numcomps, vtkIdType increments[3])
Download data from pixel buffer to the 3D array.
void * MapUnpackedBuffer(unsigned int numbytes)
void * MapUnpackedBuffer()
void ReleaseMemory()
Release the memory allocated without destroying the PBO handle.
bool Upload1D(int type, void *data, unsigned int numtuples, int comps, vtkIdType increment)
Upload data to PBO mapped.
void * MapPackedBuffer(int type, unsigned int numtuples, int comps)
unsigned int BufferTarget
void BindToPackedBuffer()
Convenience methods for binding.
void SetContext(vtkRenderWindow *context)
Get/Set the context.
void Allocate(int vtkType, unsigned int numtuples, int comps, BufferType mode)
Allocate PACKED/UNPACKED memory to hold numTuples*numComponents of vtkType.
~vtkPixelBufferObject() override
void CreateBuffer()
Create the pixel buffer object.
void * MapPackedBuffer(unsigned int numbytes)
void UnmapBuffer(BufferType mode)
Un-map the buffer from our address space, OpenGL can then use/reclaim the buffer contents.
bool Download1D(int type, void *data, unsigned int dim, int numcomps, vtkIdType increment)
Download data from pixel buffer to the 1D array.
static vtkPixelBufferObject * New()
void * MapPackedBuffer()
Convenience api for mapping buffers to app address space.
void BindToUnPackedBuffer()
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.
vtkWeakPointer< vtkRenderWindow > Context
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.
create a window for renderers to draw into
a weak reference to a vtkObject.