20 #ifndef vtkShaderProgram_h 21 #define vtkShaderProgram_h 23 #include "vtkRenderingOpenGL2Module.h" 32 class VertexArrayObject;
104 void ReleaseGraphicsResources(
vtkWindow *win);
116 bool EnableAttributeArray(
const char *
name);
122 bool DisableAttributeArray(
const char *name);
139 bool UseAttributeArray(
const char *name,
int offset,
size_t stride,
140 int elementType,
int elementTupleSize,
161 bool SetAttributeArray(
const char *name,
const T &array,
165 bool SetUniformi(
const char *name,
int v);
166 bool SetUniformf(
const char *name,
float v);
167 bool SetUniform2i(
const char *name,
const int v[2]);
168 bool SetUniform2f(
const char *name,
const float v[2]);
169 bool SetUniform3f(
const char *name,
const float v[3]);
170 bool SetUniform4f(
const char *name,
const float v[4]);
171 bool SetUniform3uc(
const char *name,
const unsigned char v[3]);
172 bool SetUniform4uc(
const char *name,
const unsigned char v[4]);
173 bool SetUniformMatrix(
const char *name,
vtkMatrix3x3 *v);
174 bool SetUniformMatrix(
const char *name,
vtkMatrix4x4 *v);
175 bool SetUniformMatrix3x3(
const char *name,
float *v);
176 bool SetUniformMatrix4x4(
const char *name,
float *v);
179 bool SetUniform1iv(
const char *name,
const int count,
const int *f);
180 bool SetUniform1fv(
const char *name,
const int count,
const float *f);
181 bool SetUniform2fv(
const char *name,
const int count,
const float (*f)[2]);
182 bool SetUniform3fv(
const char *name,
const int count,
const float (*f)[3]);
183 bool SetUniform4fv(
const char *name,
const int count,
const float (*f)[4]);
195 static bool Substitute(
222 bool AttachShader(
const vtkShader *shader);
229 bool DetachShader(
const vtkShader *shader);
232 virtual int CompileShader();
259 bool SetAttributeArrayInternal(
const char *name,
void *buffer,
260 int type,
int tupleSize,
281 friend class VertexArrayObject;
284 int FindAttributeArray(
const char *name);
285 int FindUniform(
const char *name);
abstract base class for most VTK objects
represent and manipulate 4x4 transformation matrices
bool isBound() const
Check if the program is currently bound, or not.
unsigned int NumberOfOutputs
manage Shader Programs within a context
#define vtkGetMacro(name, type)
The values range across the limits of the numeric type.
int GetHandle() const
Get the handle of the shader program.
std::map< std::string, int > Attributes
#define vtkTypeMacro(thisClass, superclass)
void SetMD5Hash(const std::string &hash)
window superclass for vtkRenderWindow
virtual void PrintSelf(ostream &os, vtkIndent indent)
a simple class to control print indentation
vtkShader * GeometryShader
std::string GetMD5Hash() const
vtkShader * FragmentShader
std::string GetError() const
Get the error message (empty if none) for the shader program.
#define vtkGetObjectMacro(name, type)
NormalizeOption
Options for attribute normalization.
boost::graph_traits< vtkGraph *>::vertex_descriptor source(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
Vertex or Fragment shader, combined into a ShaderProgram.
std::string replace(std::string source, const std::string &search, const std::string replace, bool all)
#define vtkBooleanMacro(name, type)
represent and manipulate 3x3 transformation matrices
The ShaderProgram uses one or more Shader objects.
#define vtkSetMacro(name, type)