This helper class stores a reference to a Shader and all sub-shaders that are part of its evaluation. More...
#include <mitsuba/hw/vpl.h>
Public Member Functions | |
DependencyNode (Shader *shader=NULL) | |
Create from a Shader object. More... | |
DependencyNode (const DependencyNode &node) | |
Copy constructor. More... | |
std::string | generateCode (std::ostringstream &oss, int &id) const |
Generate GLSL code for the entire shader chain. More... | |
void | resolve (GPUProgram *program, int &id) |
Resolve all parameters of the shader chain. More... | |
void | bind (GPUProgram *program, const DependencyNode &targetNode, int &textureUnitOffset) |
Bind all referenced resources (textures etc) More... | |
void | unbind () |
Release resources that were bound by bind() More... | |
void | toString (std::ostringstream &oss) const |
Generate a textual summary of the entire shader chain. More... | |
std::string | toString () const |
Public Attributes | |
const Shader * | shader |
std::vector< DependencyNode > | children |
std::vector< int > | parameterIDs |
This helper class stores a reference to a Shader and all sub-shaders that are part of its evaluation.
It also allows to generate GLSL code for the entire chain, and to bind any uniform parameters to the target parameters
|
inline |
Create from a Shader object.
|
inline |
Copy constructor.
|
inline |
Bind all referenced resources (textures etc)
|
inline |
Generate GLSL code for the entire shader chain.
|
inline |
Resolve all parameters of the shader chain.
|
inline |
Generate a textual summary of the entire shader chain.
|
inline |
|
inline |
Release resources that were bound by bind()
std::vector<DependencyNode> mitsuba::VPLShaderManager::DependencyNode::children |
std::vector<int> mitsuba::VPLShaderManager::DependencyNode::parameterIDs |
const Shader* mitsuba::VPLShaderManager::DependencyNode::shader |