VTK
dox
Rendering
OpenGL
vtkDataTransferHelper.h
Go to the documentation of this file.
1
/*=========================================================================
2
3
Program: Visualization Toolkit
4
Module: vtkDataTransferHelper.h
5
6
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7
All rights reserved.
8
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9
10
This software is distributed WITHOUT ANY WARRANTY; without even
11
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12
PURPOSE. See the above copyright notice for more information.
13
14
=========================================================================*/
31
#ifndef vtkDataTransferHelper_h
32
#define vtkDataTransferHelper_h
33
34
#include "vtkRenderingOpenGLModule.h"
// For export macro
35
#include "
vtkObject.h
"
36
#include "
vtkWeakPointer.h
"
// needed for vtkWeakPointer.
37
#include "
vtkSmartPointer.h
"
// needed for vtkSmartPointer.
38
39
class
vtkDataArray
;
40
class
vtkPixelBufferObject
;
41
class
vtkTextureObject
;
42
class
vtkOpenGLExtensionManager
;
43
class
vtkRenderWindow
;
44
45
class
VTKRENDERINGOPENGL_EXPORT
vtkDataTransferHelper
:
public
vtkObject
46
{
47
public
:
48
static
vtkDataTransferHelper
*
New
();
49
vtkTypeMacro(
vtkDataTransferHelper
,
vtkObject
);
50
void
PrintSelf
(ostream& os,
vtkIndent
indent);
51
53
60
void
SetContext(
vtkRenderWindow
* context);
61
vtkRenderWindow
* GetContext();
63
65
75
vtkSetVector6Macro(CPUExtent,
int
);
76
vtkGetVector6Macro(CPUExtent,
int
);
78
80
87
vtkSetVector6Macro(GPUExtent,
int
);
88
vtkGetVector6Macro(GPUExtent,
int
);
90
92
99
vtkSetVector6Macro(TextureExtent,
int
);
100
vtkGetVector6Macro(TextureExtent,
int
);
102
108
bool
GetExtentIsValid(
int
*
extent
);
109
113
bool
GetCPUExtentIsValid();
114
118
bool
GetGPUExtentIsValid();
119
123
bool
GetTextureExtentIsValid();
124
126
139
vtkSetMacro
(MinTextureDimension,
int
);
140
vtkGetMacro(MinTextureDimension,
int
);
142
144
147
vtkGetObjectMacro(Array,
vtkDataArray
);
148
void
SetArray(
vtkDataArray
* array);
150
152
155
vtkGetObjectMacro(Texture,
vtkTextureObject
);
156
void
SetTexture(
vtkTextureObject
* texture);
158
179
bool
Upload(
int
components=0,
180
int
*componentList=NULL);
181
205
bool
Download();
206
208
213
bool
DownloadAsync1();
214
bool
DownloadAsync2();
216
217
bool
GetShaderSupportsTextureInt();
218
void
SetShaderSupportsTextureInt(
bool
value
);
219
223
static
bool
IsSupported(
vtkRenderWindow
* renWin);
224
225
protected
:
226
vtkDataTransferHelper
();
227
~
vtkDataTransferHelper
();
228
232
bool
LoadRequiredExtensions(
vtkOpenGLExtensionManager
*);
233
234
int
CPUExtent[6];
235
int
GPUExtent[6];
236
int
TextureExtent[6];
237
238
vtkWeakPointer<vtkRenderWindow>
Context
;
239
vtkTextureObject
*
Texture
;
240
vtkDataArray
*
Array
;
241
bool
ShaderSupportsTextureInt
;
242
int
MinTextureDimension
;
243
244
vtkSmartPointer<vtkPixelBufferObject>
AsyncDownloadPBO
;
245
246
vtkPixelBufferObject
* GetPBO();
247
248
// We try to reuse the PBO if possible.
249
vtkSmartPointer<vtkPixelBufferObject>
PBO
;
250
private
:
251
vtkDataTransferHelper
(
const
vtkDataTransferHelper
&) VTK_DELETE_FUNCTION;
252
void
operator=(
const
vtkDataTransferHelper
&) VTK_DELETE_FUNCTION;
253
254
};
255
256
#endif
vtkDataTransferHelper::ShaderSupportsTextureInt
bool ShaderSupportsTextureInt
Definition:
vtkDataTransferHelper.h:241
vtkDataTransferHelper
is a helper class that aids in transferring data between CPU memory and GPU memory.
Definition:
vtkDataTransferHelper.h:45
vtkX3D::value
Definition:
vtkX3D.h:220
vtkObject::New
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on.
vtkDataTransferHelper::Texture
vtkTextureObject * Texture
Definition:
vtkDataTransferHelper.h:239
vtkSmartPointer< vtkPixelBufferObject >
vtkObject
abstract base class for most VTK objects
Definition:
vtkObject.h:59
vtkDataArray
abstract superclass for arrays of numeric data
Definition:
vtkDataArray.h:54
vtkDataTransferHelper::PBO
vtkSmartPointer< vtkPixelBufferObject > PBO
Definition:
vtkDataTransferHelper.h:249
vtkDataTransferHelper::MinTextureDimension
int MinTextureDimension
Definition:
vtkDataTransferHelper.h:242
vtkOpenGLExtensionManager
Interface class for querying and using OpenGL extensions.
vtkDataTransferHelper::Array
vtkDataArray * Array
Definition:
vtkDataTransferHelper.h:240
vtkIndent
a simple class to control print indentation
Definition:
vtkIndent.h:39
vtkTextureObject
abstracts an OpenGL texture object.
Definition:
vtkTextureObject.h:40
vtkSmartPointer.h
vtkObject::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkWeakPointer.h
vtkObject.h
vtkSetMacro
vtkSetMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
vtkX3D::extent
Definition:
vtkX3D.h:345
vtkRenderWindow
create a window for renderers to draw into
Definition:
vtkRenderWindow.h:86
vtkDataTransferHelper::AsyncDownloadPBO
vtkSmartPointer< vtkPixelBufferObject > AsyncDownloadPBO
Definition:
vtkDataTransferHelper.h:244
vtkPixelBufferObject
abstracts an OpenGL pixel buffer object.
Definition:
vtkPixelBufferObject.h:43
vtkWeakPointer< vtkRenderWindow >
vtkDataTransferHelper::Context
vtkWeakPointer< vtkRenderWindow > Context
Definition:
vtkDataTransferHelper.h:238
Generated by
1.8.16