 |
VTK
9.0.1
|
Go to the documentation of this file.
21 #ifndef vtkShaderProgram_h
22 #define vtkShaderProgram_h
25 #include "vtkRenderingOpenGL2Module.h"
34 class VertexArrayObject;
55 vtkGetObjectMacro(VertexShader,
vtkShader);
63 vtkGetObjectMacro(FragmentShader,
vtkShader);
71 vtkGetObjectMacro(GeometryShader,
vtkShader);
87 vtkGetMacro(Compiled,
bool);
88 vtkSetMacro(Compiled,
bool);
89 vtkBooleanMacro(Compiled,
bool);
123 void ReleaseGraphicsResources(
vtkWindow* win);
135 bool EnableAttributeArray(
const char*
name);
141 bool DisableAttributeArray(
const char*
name);
158 bool UseAttributeArray(
const char*
name,
int offset,
size_t stride,
int elementType,
159 int elementTupleSize, NormalizeOption normalize);
179 bool SetAttributeArray(
180 const char*
name,
const T& array,
int tupleSize, NormalizeOption normalize);
183 bool SetUniformi(
const char*
name,
int v);
184 bool SetUniformf(
const char*
name,
float v);
185 bool SetUniform2i(
const char*
name,
const int v[2]);
186 bool SetUniform2f(
const char*
name,
const float v[2]);
187 bool SetUniform3f(
const char*
name,
const float v[3]);
188 bool SetUniform3f(
const char*
name,
const double v[3]);
189 bool SetUniform4f(
const char*
name,
const float v[4]);
190 bool SetUniform3uc(
const char*
name,
const unsigned char v[3]);
191 bool SetUniform4uc(
const char*
name,
const unsigned char v[4]);
194 bool SetUniformMatrix3x3(
const char*
name,
float* v);
195 bool SetUniformMatrix4x4(
const char*
name,
float* v);
198 bool SetUniform1iv(
const char*
name,
const int count,
const int* f);
199 bool SetUniform1fv(
const char*
name,
const int count,
const float* f);
200 bool SetUniform2fv(
const char*
name,
const int count,
const float* f);
201 bool SetUniform2fv(
const char*
name,
const int count,
const float (*f)[2]);
202 bool SetUniform3fv(
const char*
name,
const int count,
const float* f);
203 bool SetUniform3fv(
const char*
name,
const int count,
const float (*f)[3]);
204 bool SetUniform4fv(
const char*
name,
const int count,
const float* f);
205 bool SetUniform4fv(
const char*
name,
const int count,
const float (*f)[4]);
206 bool SetUniformMatrix4x4v(
const char*
name,
const int count,
float* v);
210 vtkSetMacro(NumberOfOutputs,
unsigned int);
223 static bool Substitute(
237 static bool Substitute(
245 bool IsUniformUsed(
const char*);
251 bool IsAttributeUsed(
const char*
name);
261 bool operator()(
const char* a,
const char* b)
const {
return strcmp(a, b) < 0; }
282 vtkSetStringMacro(FileNamePrefixForDebugging);
283 vtkGetStringMacro(FileNamePrefixForDebugging);
304 int FindUniform(
const char*
name);
305 int FindAttributeArray(
const char*
name);
325 bool AttachShader(
const vtkShader* shader);
332 bool DetachShader(
const vtkShader* shader);
337 virtual int CompileShader();
365 bool SetAttributeArrayInternal(
392 friend class VertexArrayObject;
398 char* FileNamePrefixForDebugging;
std::string GetMD5Hash() const
Set/Get the md5 hash of this program.
std::map< int, vtkMTimeType > UniformGroupMTimes
NormalizeOption
Options for attribute normalization.
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on.
vtkShader * FragmentShader
std::string GetError() const
Get the error message (empty if none) for the shader program.
abstract base class for most VTK objects
represent and manipulate 3x3 transformation matrices
window superclass for vtkRenderWindow
std::map< const char *, int, cmp_str > UniformLocs
The ShaderProgram uses one or more Shader objects.
a simple class to control print indentation
represent and manipulate 4x4 transformation matrices
std::map< const char *, int, cmp_str > AttributeLocs
UniformGroups
Set/Get times that can be used to track when a set of uniforms was last updated.
@ Normalize
The values range across the limits of the numeric type.
vtkTransformFeedback * TransformFeedback
bool isBound() const
Check if the program is currently bound, or not.
Vertex or Fragment shader, combined into a ShaderProgram.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
manage Shader Programs within a context
int GetHandle() const
Get the handle of the shader program.
bool operator()(const char *a, const char *b) const
unsigned int NumberOfOutputs
void SetMD5Hash(const std::string &hash)
boost::graph_traits< vtkGraph * >::vertex_descriptor source(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
vtkShader * GeometryShader
vtkTypeUInt32 vtkMTimeType