21 #ifndef vtkShaderProperty_h
22 #define vtkShaderProperty_h
26 #include "vtkRenderingCoreModule.h"
29 VTK_ABI_NAMESPACE_BEGIN
67 bool HasVertexShaderCode();
68 bool HasFragmentShaderCode();
69 bool HasGeometryShaderCode();
70 bool HasTessControlShaderCode();
71 bool HasTessEvalShaderCode();
72 vtkSetStringMacro(VertexShaderCode);
73 vtkGetStringMacro(VertexShaderCode);
74 vtkSetStringMacro(FragmentShaderCode);
75 vtkGetStringMacro(FragmentShaderCode);
76 vtkSetStringMacro(GeometryShaderCode);
77 vtkGetStringMacro(GeometryShaderCode);
78 vtkSetStringMacro(TessControlShaderCode);
79 vtkGetStringMacro(TessControlShaderCode);
80 vtkSetStringMacro(TessEvaluationShaderCode);
81 vtkGetStringMacro(TessEvaluationShaderCode);
89 vtkGetObjectMacro(FragmentCustomUniforms,
vtkUniforms);
90 vtkGetObjectMacro(VertexCustomUniforms,
vtkUniforms);
91 vtkGetObjectMacro(GeometryCustomUniforms,
vtkUniforms);
92 vtkGetObjectMacro(TessControlCustomUniforms,
vtkUniforms);
93 vtkGetObjectMacro(TessEvaluationCustomUniforms,
vtkUniforms);
104 virtual void AddVertexShaderReplacement(
const std::string& originalValue,
106 const std::string& replacementValue,
bool replaceAll) = 0;
107 virtual void AddFragmentShaderReplacement(
const std::string& originalValue,
109 const std::string& replacementValue,
bool replaceAll) = 0;
110 virtual void AddGeometryShaderReplacement(
const std::string& originalValue,
112 const std::string& replacementValue,
bool replaceAll) = 0;
113 virtual void AddTessControlShaderReplacement(
const std::string& originalValue,
115 const std::string& replacementValue,
bool replaceAll) = 0;
116 virtual void AddTessEvaluationShaderReplacement(
const std::string& originalValue,
118 const std::string& replacementValue,
bool replaceAll) = 0;
119 virtual int GetNumberOfShaderReplacements() = 0;
122 std::string& replacementValue,
bool& replaceAll) = 0;
123 virtual void ClearVertexShaderReplacement(
124 const std::string& originalValue,
bool replaceFirst) = 0;
125 virtual void ClearFragmentShaderReplacement(
126 const std::string& originalValue,
bool replaceFirst) = 0;
127 virtual void ClearGeometryShaderReplacement(
128 const std::string& originalValue,
bool replaceFirst) = 0;
129 virtual void ClearTessControlShaderReplacement(
130 const std::string& originalValue,
bool replaceFirst) = 0;
131 virtual void ClearTessEvaluationShaderReplacement(
132 const std::string& originalValue,
bool replaceFirst) = 0;
133 virtual void ClearAllVertexShaderReplacements() = 0;
134 virtual void ClearAllFragmentShaderReplacements() = 0;
135 virtual void ClearAllGeometryShaderReplacements() = 0;
136 virtual void ClearAllTessControlShaderReplacements() = 0;
137 virtual void ClearAllTessEvalShaderReplacements() = 0;
138 virtual void ClearAllShaderReplacements() = 0;
162 VTK_ABI_NAMESPACE_END
char * TessControlShaderCode
abstract base class for most VTK objects
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkTypeUInt32 vtkMTimeType
char * GeometryShaderCode
vtkNew< vtkUniforms > TessControlCustomUniforms
#define VTK_MARSHALMANUAL
a simple class to control print indentation
represent GPU shader properties
vtkNew< vtkUniforms > FragmentCustomUniforms
char * TessEvaluationShaderCode
vtkNew< vtkUniforms > TessEvaluationCustomUniforms
char * FragmentShaderCode
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...
vtkNew< vtkUniforms > VertexCustomUniforms
vtkNew< vtkUniforms > GeometryCustomUniforms