You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

54 lines
1.5 KiB
C++

/*=========================================================================
Program: Visualization Toolkit
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
All rights reserved.
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notice for more information.
=========================================================================*/
#ifndef vtkOpenGLHelper_h
#define vtkOpenGLHelper_h
#include "vtkRenderingOpenGL2Module.h" // for export macro
#include "vtkTimeStamp.h"
class vtkOpenGLIndexBufferObject;
class vtkOpenGLShaderCache;
class vtkOpenGLVertexArrayObject;
class vtkShaderProgram;
class vtkWindow;
// Store the shaders, program, and ibo in a common place
// as they are used together frequently. This is just
// a convenience class.
class VTKRENDERINGOPENGL2_EXPORT vtkOpenGLHelper
{
public:
vtkShaderProgram* Program;
vtkTimeStamp ShaderSourceTime;
vtkOpenGLVertexArrayObject* VAO;
vtkTimeStamp AttributeUpdateTime;
int PrimitiveType;
unsigned int ShaderChangeValue;
vtkOpenGLIndexBufferObject* IBO;
vtkOpenGLHelper();
~vtkOpenGLHelper();
void ReleaseGraphicsResources(vtkWindow* win);
private:
vtkOpenGLHelper(const vtkOpenGLHelper&) = delete;
vtkOpenGLHelper& operator=(const vtkOpenGLHelper&) = delete;
};
#endif // vtkOpenGLHelper_h
// VTK-HeaderTest-Exclude: vtkOpenGLHelper.h