21 #ifndef vtkPixelBufferObject_h
22 #define vtkPixelBufferObject_h
25 #include "vtkRenderingOpenGL2Module.h"
28 VTK_ABI_NAMESPACE_BEGIN
30 class vtkOpenGLExtensionManager;
84 vtkGetMacro(Usage,
int);
85 vtkSetMacro(Usage,
int);
100 unsigned int newdims[3];
101 newdims[0] = numtuples;
105 newinc[0] = increment;
108 return this->Upload3D(
type,
data, newdims, comps, newinc, 0,
nullptr);
123 unsigned int newdims[3];
124 newdims[0] = dims[0];
125 newdims[1] = dims[1];
128 newinc[0] = increments[0];
129 newinc[1] = increments[1];
131 return this->Upload3D(
type,
data, newdims, comps, newinc, 0,
nullptr);
144 int components,
int* componentList);
160 vtkGetMacro(Components,
int);
161 vtkSetMacro(Components,
int);
169 vtkGetMacro(Size,
unsigned int);
170 vtkSetMacro(Size,
unsigned int);
178 vtkGetMacro(Handle,
unsigned int);
188 unsigned int newdims[3];
193 newincrements[0] = increment;
194 newincrements[1] = 0;
195 newincrements[2] = 0;
196 return this->Download3D(
type,
data, newdims, numcomps, newincrements);
207 unsigned int newdims[3];
208 newdims[0] = dims[0];
209 newdims[1] = dims[1];
212 newincrements[0] = increments[0];
213 newincrements[1] = increments[1];
214 newincrements[2] = 0;
215 return this->Download3D(
type,
data, newdims, numcomps, newincrements);
225 int type,
void*
data,
unsigned int dims[3],
int numcomps,
vtkIdType increments[3]);
247 return this->MapBuffer(
type, numtuples, comps, PACKED_BUFFER);
250 void*
MapPackedBuffer(
unsigned int numbytes) {
return this->MapBuffer(numbytes, PACKED_BUFFER); }
256 return this->MapBuffer(
type, numtuples, comps, UNPACKED_BUFFER);
261 return this->MapBuffer(numbytes, UNPACKED_BUFFER);
357 VTK_ABI_NAMESPACE_END
a simple class to control print indentation
abstract base class for most VTK objects
abstracts an OpenGL pixel buffer object.
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 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.
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 * MapBuffer(int type, unsigned int numtuples, int comps, BufferType mode)
Map the buffer to our addresspace.
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.
unsigned int BufferTarget
void BindToPackedBuffer()
Convenience methods for binding.
void * MapPackedBuffer()
Convenience api for mapping buffers to app address space.
void SetContext(vtkRenderWindow *context)
Get/Set the context.
void * MapUnpackedBuffer(int type, unsigned int numtuples, int comps)
void Allocate(int vtkType, unsigned int numtuples, int comps, BufferType mode)
Allocate PACKED/UNPACKED memory to hold numTuples*numComponents of vtkType.
void * MapBuffer(BufferType mode)
Map the buffer to our addresspace.
void * MapPackedBuffer(int type, unsigned int numtuples, int comps)
~vtkPixelBufferObject() override
void CreateBuffer()
Create the pixel buffer object.
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.
void * MapPackedBuffer(unsigned int numbytes)
void BindToUnPackedBuffer()
void * MapUnpackedBuffer()
void * MapBuffer(unsigned int numbytes, BufferType mode)
Map the buffer to our addresspace.
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.
static vtkPixelBufferObject * New()
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