8#ifndef vtkGLSLModifierBase_h
9#define vtkGLSLModifierBase_h
13#include "vtkRenderingOpenGL2Module.h"
15VTK_ABI_NAMESPACE_BEGIN
34 std::string& tessControlShader, std::string& tessEvalShader, std::string& geometryShader,
56 unsigned int PrimitiveType = 0;
abstract class specifies interface to map data
represents an object (geometry & properties) in a rendered scene
Abstract class that helps you develop modifier for VTK GLSL shaders.
static vtkInformationObjectBaseKey * GLSL_MODIFIERS()
if this key exists on the ShaderMods of vtkDrawTexturedElements, that mod will be applied before rend...
virtual bool SetShaderParameters(vtkOpenGLRenderer *renderer, vtkShaderProgram *program, vtkAbstractMapper *mapper, vtkActor *actor, vtkOpenGLVertexArrayObject *VAO=nullptr)=0
virtual bool ReplaceShaderValues(vtkOpenGLRenderer *renderer, std::string &vertexShader, std::string &tessControlShader, std::string &tessEvalShader, std::string &geometryShader, std::string &fragmentShader, vtkAbstractMapper *mapper, vtkActor *actor)=0
Abstract interfaces to replace shader values and apply parameters as uniform values.
void SetPrimitiveType(unsigned int primType)
The renderer will set primitive type.
~vtkGLSLModifierBase() override
virtual bool IsUpToDate(vtkOpenGLRenderer *renderer, vtkAbstractMapper *mapper, vtkActor *actor)=0
Whether mod needs to be re-applied.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
a simple class to control print indentation
abstract base class for most VTK objects
The VertexArrayObject class uses, or emulates, vertex array objects.
The ShaderProgram uses one or more Shader objects.