VTK
9.0.1
Rendering
OpenGL2
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 "
vtkObject.h
"
35
#include "vtkRenderingOpenGL2Module.h"
// For export macro
36
#include "
vtkSmartPointer.h
"
// needed for vtkSmartPointer.
37
#include "
vtkWeakPointer.h
"
// needed for vtkWeakPointer.
38
39
class
vtkDataArray
;
40
class
vtkPixelBufferObject
;
41
class
vtkTextureObject
;
42
class
vtkRenderWindow
;
43
44
class
VTKRENDERINGOPENGL2_EXPORT
vtkDataTransferHelper
:
public
vtkObject
45
{
46
public
:
47
static
vtkDataTransferHelper
*
New
();
48
vtkTypeMacro(
vtkDataTransferHelper
,
vtkObject
);
49
void
PrintSelf
(ostream& os,
vtkIndent
indent)
override
;
50
52
59
void
SetContext(
vtkRenderWindow
* context);
60
vtkRenderWindow
* GetContext();
62
64
74
vtkSetVector6Macro(CPUExtent,
int
);
75
vtkGetVector6Macro(CPUExtent,
int
);
77
79
86
vtkSetVector6Macro(GPUExtent,
int
);
87
vtkGetVector6Macro(GPUExtent,
int
);
89
91
98
vtkSetVector6Macro(TextureExtent,
int
);
99
vtkGetVector6Macro(TextureExtent,
int
);
101
107
bool
GetExtentIsValid(
int
*
extent
);
108
112
bool
GetCPUExtentIsValid();
113
117
bool
GetGPUExtentIsValid();
118
122
bool
GetTextureExtentIsValid();
123
125
138
vtkSetMacro(MinTextureDimension,
int
);
139
vtkGetMacro(MinTextureDimension,
int
);
141
143
146
vtkGetObjectMacro(Array,
vtkDataArray
);
147
void
SetArray(
vtkDataArray
* array);
149
151
154
vtkGetObjectMacro(Texture,
vtkTextureObject
);
155
void
SetTexture(
vtkTextureObject
* texture);
157
183
bool
Upload(
int
components = 0,
int
* componentList =
nullptr
);
184
211
bool
Download();
212
214
219
bool
DownloadAsync1();
220
bool
DownloadAsync2();
222
223
bool
GetShaderSupportsTextureInt();
224
void
SetShaderSupportsTextureInt(
bool
value
);
225
229
static
bool
IsSupported(
vtkRenderWindow
* renWin);
230
231
protected
:
232
vtkDataTransferHelper
();
233
~
vtkDataTransferHelper
()
override
;
234
235
int
CPUExtent[6];
236
int
GPUExtent[6];
237
int
TextureExtent[6];
238
239
vtkWeakPointer<vtkRenderWindow>
Context
;
240
vtkTextureObject
*
Texture
;
241
vtkDataArray
*
Array
;
242
bool
ShaderSupportsTextureInt
;
243
int
MinTextureDimension
;
244
245
vtkSmartPointer<vtkPixelBufferObject>
AsyncDownloadPBO
;
246
247
vtkPixelBufferObject
* GetPBO();
248
249
// We try to reuse the PBO if possible.
250
vtkSmartPointer<vtkPixelBufferObject>
PBO
;
251
252
private
:
253
vtkDataTransferHelper
(
const
vtkDataTransferHelper
&) =
delete
;
254
void
operator=(
const
vtkDataTransferHelper
&) =
delete
;
255
};
256
257
#endif
vtkDataTransferHelper::ShaderSupportsTextureInt
bool ShaderSupportsTextureInt
Definition:
vtkDataTransferHelper.h:242
vtkDataTransferHelper
is a helper class that aids in transferring data between CPU memory and GPU memory.
Definition:
vtkDataTransferHelper.h:44
vtkX3D::value
@ value
Definition:
vtkX3D.h:226
vtkObject::New
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on.
vtkSmartPointer< vtkPixelBufferObject >
vtkObject
abstract base class for most VTK objects
Definition:
vtkObject.h:62
vtkDataTransferHelper::Context
vtkWeakPointer< vtkRenderWindow > Context
Definition:
vtkDataTransferHelper.h:239
vtkDataArray
abstract superclass for arrays of numeric data
Definition:
vtkDataArray.h:49
vtkDataTransferHelper::MinTextureDimension
int MinTextureDimension
Definition:
vtkDataTransferHelper.h:243
vtkIndent
a simple class to control print indentation
Definition:
vtkIndent.h:33
vtkTextureObject
abstracts an OpenGL texture object.
Definition:
vtkTextureObject.h:40
vtkDataTransferHelper::PBO
vtkSmartPointer< vtkPixelBufferObject > PBO
Definition:
vtkDataTransferHelper.h:250
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
vtkDataTransferHelper::AsyncDownloadPBO
vtkSmartPointer< vtkPixelBufferObject > AsyncDownloadPBO
Definition:
vtkDataTransferHelper.h:245
vtkX3D::extent
@ extent
Definition:
vtkX3D.h:351
vtkRenderWindow
create a window for renderers to draw into
Definition:
vtkRenderWindow.h:93
vtkDataTransferHelper::Texture
vtkTextureObject * Texture
Definition:
vtkDataTransferHelper.h:240
vtkDataTransferHelper::Array
vtkDataArray * Array
Definition:
vtkDataTransferHelper.h:241
vtkPixelBufferObject
abstracts an OpenGL pixel buffer object.
Definition:
vtkPixelBufferObject.h:43
vtkWeakPointer< vtkRenderWindow >
Generated on Thu Jun 24 2021 15:17:26 for VTK by
1.8.17