|  | 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