33 #ifndef vtkPixelBufferObject_h 34 #define vtkPixelBufferObject_h 37 #include "vtkRenderingOpenGL2Module.h" 41 class vtkOpenGLExtensionManager;
96 vtkGetMacro(Usage,
int);
97 vtkSetMacro(Usage,
int);
111 unsigned int numtuples,
int comps,
vtkIdType increment)
113 unsigned int newdims[3];
114 newdims[0] = numtuples;
118 newinc[0] = increment;
121 return this->Upload3D(type, data, newdims, comps, newinc,0,
nullptr);
135 unsigned int dims[2],
139 unsigned int newdims[3];
140 newdims[0] = dims[0];
141 newdims[1] = dims[1];
144 newinc[0] = increments[0];
145 newinc[1] = increments[1];
147 return this->Upload3D(type, data, newdims, comps, newinc,0,
nullptr);
160 unsigned int dims[3],
int comps,
171 vtkGetMacro(Type,
int);
172 vtkSetMacro(Type,
int);
179 vtkGetMacro(Components,
int);
180 vtkSetMacro(Components,
int);
188 vtkGetMacro(Size,
unsigned int);
189 vtkSetMacro(Size,
unsigned int);
190 void SetSize(
unsigned int nTups,
int nComps);
197 vtkGetMacro(Handle,
unsigned int);
206 int type,
void* data,
210 unsigned int newdims[3];
215 newincrements[0] = increment;
216 newincrements[1] = 0;
217 newincrements[2] = 0;
218 return this->Download3D(type, data, newdims, numcomps, newincrements);
228 int type,
void* data,
229 unsigned int dims[2],
232 unsigned int newdims[3];
233 newdims[0] = dims[0];
234 newdims[1] = dims[1];
237 newincrements[0] = increments[0];
238 newincrements[1] = increments[1];
239 newincrements[2] = 0;
240 return this->Download3D(type, data, newdims, numcomps, newincrements);
249 bool Download3D(
int type,
void* data,
250 unsigned int dims[3],
257 { this->Bind(PACKED_BUFFER); }
260 { this->Bind(UNPACKED_BUFFER); }
272 {
return this->MapBuffer(PACKED_BUFFER); }
275 {
return this->MapBuffer(type, numtuples, comps, PACKED_BUFFER); }
278 {
return this->MapBuffer(numbytes, PACKED_BUFFER); }
281 {
return this->MapBuffer(UNPACKED_BUFFER); }
284 {
return this->MapBuffer(type, numtuples, comps, UNPACKED_BUFFER); }
287 {
return this->MapBuffer(numbytes, UNPACKED_BUFFER); }
294 { this->UnmapBuffer(UNPACKED_BUFFER); }
297 { this->UnmapBuffer(PACKED_BUFFER); }
318 void *MapBuffer(
int type,
unsigned int numtuples,
int comps,
BufferType mode);
334 unsigned int numtuples,
348 void ReleaseMemory();
374 void DestroyBuffer();
bool Upload1D(int type, void *data, unsigned int numtuples, int comps, vtkIdType increment)
Upload data to PBO mapped.
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.
vtkWeakPointer< vtkRenderWindow > Context
abstract base class for most VTK objects
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
bool Download1D(int type, void *data, unsigned int dim, int numcomps, vtkIdType increment)
Download data from pixel buffer to the 1D array.
void BindToPackedBuffer()
Convenience methods for binding.
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 * MapPackedBuffer()
Convenience api for mapping buffers to app address space.
void * MapUnpackedBuffer(int type, unsigned int numtuples, int comps)
void * MapUnpackedBuffer(unsigned int numbytes)
void * MapPackedBuffer(int type, unsigned int numtuples, int comps)
a simple class to control print indentation
abstracts an OpenGL pixel buffer object.
void * MapPackedBuffer(unsigned int numbytes)
create a window for renderers to draw into
void * MapUnpackedBuffer()
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...
void UnmapUnpackedBuffer()
Convenience api for unmapping buffers from app address space.
void BindToUnPackedBuffer()
unsigned int BufferTarget