VTK
dox
Rendering
OpenGL2
vtkOpenGLRenderUtilities.h
Go to the documentation of this file.
1
/*=========================================================================
2
3
Program: Visualization Toolkit
4
Module: vtkOpenGLRenderUtilities.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
=========================================================================*/
25
#ifndef vtkOpenGLRenderUtilities_h
26
#define vtkOpenGLRenderUtilities_h
27
28
#include "vtkRenderingOpenGL2Module.h"
// For export macro
29
#include "
vtkObject.h
"
30
31
#include "vtk_glew.h"
// Needed for GLuint.
32
#include <string>
// for std::string
33
34
class
vtkOpenGLBufferObject
;
35
class
vtkOpenGLRenderWindow
;
36
class
vtkOpenGLVertexArrayObject
;
37
class
vtkShaderProgram
;
38
39
class
VTKRENDERINGOPENGL2_EXPORT
vtkOpenGLRenderUtilities
:
public
vtkObject
40
{
41
public
:
42
vtkTypeMacro(
vtkOpenGLRenderUtilities
,
vtkObject
);
43
void
PrintSelf
(ostream& os,
vtkIndent
indent)
override
;
44
46
52
static
void
RenderQuad(
53
float
*verts,
float
*tcoords,
54
vtkShaderProgram
*program,
vtkOpenGLVertexArrayObject
*vao);
55
static
void
RenderTriangles(
56
float
*verts,
unsigned
int
numVerts,
57
GLuint *indices,
unsigned
int
numIndices,
58
float
*tcoords,
59
vtkShaderProgram
*program,
vtkOpenGLVertexArrayObject
*vao);
61
63
108
static
std::string
GetFullScreenQuadVertexShader();
109
static
std::string
GetFullScreenQuadFragmentShaderTemplate();
110
static
std::string
GetFullScreenQuadGeometryShader();
111
static
bool
PrepFullScreenVAO(
vtkOpenGLRenderWindow
*renWin,
112
vtkOpenGLVertexArrayObject
*vao,
113
vtkShaderProgram
*prog);
114
static
void
DrawFullScreenQuad();
116
117
// older signsature, we suggest you use the newer signature above
118
static
bool
PrepFullScreenVAO(
vtkOpenGLBufferObject
*verts,
119
vtkOpenGLVertexArrayObject
*vao,
120
vtkShaderProgram
*prog);
121
130
static
void
MarkDebugEvent(
const
std::string
&event);
131
132
protected
:
133
vtkOpenGLRenderUtilities
();
134
~
vtkOpenGLRenderUtilities
()
override
;
135
136
private
:
137
vtkOpenGLRenderUtilities
(
const
vtkOpenGLRenderUtilities
&) =
delete
;
138
void
operator=(
const
vtkOpenGLRenderUtilities
&) =
delete
;
139
};
140
141
#endif
vtkOpenGLBufferObject
OpenGL buffer object.
Definition:
vtkOpenGLBufferObject.h:33
vtkObject
abstract base class for most VTK objects
Definition:
vtkObject.h:59
vtkOpenGLRenderUtilities
OpenGL rendering utility functions.
Definition:
vtkOpenGLRenderUtilities.h:39
vtkShaderProgram
The ShaderProgram uses one or more Shader objects.
Definition:
vtkShaderProgram.h:47
vtkIndent
a simple class to control print indentation
Definition:
vtkIndent.h:39
vtkObject::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkObject.h
vtkX3D::string
Definition:
vtkX3D.h:490
vtkOpenGLRenderWindow
OpenGL rendering window.
Definition:
vtkOpenGLRenderWindow.h:53
vtkOpenGLVertexArrayObject
The VertexArrayObject class uses, or emulates, vertex array objects.
Definition:
vtkOpenGLVertexArrayObject.h:36
Generated by
1.8.16