VTK
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=========================================================================*/
22#ifndef vtkOpenGLRenderUtilities_h
23#define vtkOpenGLRenderUtilities_h
24
25#include "vtkRenderingOpenGL2Module.h" // For export macro
26#include "vtkObject.h"
27
28#include "vtk_glew.h" // Needed for GLuint.
29#include <string> // for std::string
30
34
35class VTKRENDERINGOPENGL2_EXPORT vtkOpenGLRenderUtilities : public vtkObject
36{
37public:
39 void PrintSelf(ostream& os, vtkIndent indent);
40
42
48 static void RenderQuad(
49 float *verts, float *tcoords,
51 static void RenderTriangles(
52 float *verts, unsigned int numVerts,
53 GLuint *indices, unsigned int numIndices,
54 float *tcoords,
57
59
109 vtkShaderProgram *prog);
110 static void DrawFullScreenQuad();
112
113protected:
116
117private:
118 vtkOpenGLRenderUtilities(const vtkOpenGLRenderUtilities&) VTK_DELETE_FUNCTION;
119 void operator=(const vtkOpenGLRenderUtilities&) VTK_DELETE_FUNCTION;
120};
121
122#endif
a simple class to control print indentation
Definition: vtkIndent.h:40
abstract base class for most VTK objects
Definition: vtkObject.h:60
OpenGL buffer object.
OpenGL rendering utility functions.
static std::string GetFullScreenQuadVertexShader()
Draw a full-screen quad:
static std::string GetFullScreenQuadFragmentShaderTemplate()
static std::string GetFullScreenQuadGeometryShader()
static void RenderTriangles(float *verts, unsigned int numVerts, GLuint *indices, unsigned int numIndices, float *tcoords, vtkShaderProgram *program, vtkOpenGLVertexArrayObject *vao)
static void RenderQuad(float *verts, float *tcoords, vtkShaderProgram *program, vtkOpenGLVertexArrayObject *vao)
Helper function that draws a quad on the screen at the specified vertex coordinates and if tcoords ar...
void PrintSelf(ostream &os, vtkIndent indent)
Methods invoked by print to print information about the object including superclasses.
static bool PrepFullScreenVAO(vtkOpenGLBufferObject *verts, vtkOpenGLVertexArrayObject *vao, vtkShaderProgram *prog)
static void DrawFullScreenQuad()
The VertexArrayObject class uses, or emulates, vertex array objects.
The ShaderProgram uses one or more Shader objects.
@ string
Definition: vtkX3D.h:490