| 
    H3D API
    2.4.1
    
   | 
 
The H3DGeneratedFragmentShaderNode node is the base class for shader generator nodes that specify a fragment shader values. More...
#include <H3D/H3DGeneratedFragmentShaderNode.h>

Public Member Functions | |
| H3DGeneratedFragmentShaderNode (Inst< DisplayList > _displayList=0, Inst< SFNode > _metadata=0, Inst< SFBool > _isSelected=0, Inst< SFBool > _isValid=0, Inst< SFBool > _activate=0, Inst< SFString > _language=0, Inst< MFShaderPart > _parts=0, Inst< SFBool > _suppressUniformWarnings=0, Inst< MFString > _fragmentShaderString=0, Inst< MFString > _vertexShaderString=0) | |
| Constructor.  | |
  Public Member Functions inherited from H3D::H3DGeneratedShaderNode | |
| H3DGeneratedShaderNode (Inst< DisplayList > _displayList=0, Inst< SFNode > _metadata=0, Inst< SFBool > _isSelected=0, Inst< SFBool > _isValid=0, Inst< SFBool > _activate=0, Inst< SFString > _language=0, Inst< MFShaderPart > _parts=0, Inst< SFBool > _suppressUniformWarnings=0, Inst< MFString > _fragmentShaderString=0, Inst< MFString > _vertexShaderString=0) | |
| Constructor.  | |
| virtual void | buildShader () | 
| Rebuilds the generated shader, causing a full rebuild and relink of the shader.  | |
| virtual void | preRender () | 
| The preRender method is extended to make sure that the shader is up to date before rendering.  | |
| virtual string | addUniformFields (ComposedShader *shader) | 
| Adds uniform fields to the shader.  More... | |
| virtual string | getFunctionShaderString () | 
| Get a string with GLSL function definitions to be used by the generated shader.  | |
| virtual void | getVaryingVariables (vector< VaryingVariable > &) | 
| Get the varying variables used by the shader generator.  More... | |
| virtual void | getAttributes (vector< Attribute > &) | 
| Get the attribues used by the shader generator.  More... | |
| virtual string | getFinalFragmentShaderOutputString () | 
| Returns the string that is the last thing that is done in the fragment shader.  More... | |
| virtual string | getVertexShaderString () | 
| Returns the shader code for the vertex shader.  More... | |
| virtual string | getFragmentShaderString () | 
| Returns the shader code for the fragment shader.  More... | |
| virtual string | uniqueShaderName (const string &base_name) | 
| The uniqueShaderName function is used to generate a name unique for this instance of the shader generator node class.  More... | |
| virtual string | getFragmentShaderHeader () | 
| Return a string that is placed at the beginning of a fragment shader to specify minimum required version of the shader as well as enabled extensions.  | |
| virtual string | getVertexShaderHeader () | 
| Return a string that is placed at the beginning of a vertex shader to specify minimum required version of the shader as well as enabled extensions.  | |
  Public Member Functions inherited from H3D::ComposedShader | |
| ComposedShader (Inst< DisplayList > _displayList=0, Inst< SFNode > _metadata=0, Inst< SFBool > _isSelected=0, Inst< SFBool > _isValid=0, Inst< SFBool > _activate=0, Inst< SFString > _language=0, Inst< MFShaderPart > _parts=0, Inst< SFBool > _suppressUniformWarnings=0, Inst< SFString > _geometryInputType=0, Inst< SFString > _geometryOutputType=0, Inst< SFInt32 > _geometryVerticesOut=0, Inst< SFString > _transparencyDetectMode=0, Inst< MFString > _transformFeedbackVaryings=0, Inst< SFBool > _printShaderWarnings=0, Inst< SFShaderConstants > _shaderConstants=0) | |
| Constructor.  | |
| virtual | ~ComposedShader () | 
| Destructor.  | |
| virtual bool | addField (const string &_name, const Field::AccessType &access, Field *field) | 
| The addField method is specialized to add a route from the field added to the displayList field.  | |
| virtual bool | removeField (const string &_name) | 
| The removeField method is specialized to remove the route from the field to the displayList field.  | |
| virtual void | traverseSG (TraverseInfo &ti) | 
| Traverse the node.  More... | |
| virtual void | render () | 
| Sets up the shader program and sets uniform variable values.  | |
| virtual void | postRender () | 
| Disables the shader program.  | |
| virtual GLbitfield | getAffectedGLAttribs () | 
| Returns a bitmask of the OpenGL attrib bits that will be affected by this node.  More... | |
| virtual bool | isTransparent (X3DMaterialNode *material) | 
| Returns a hint if the X3DShaderNode produces an alpha channel that is < 1, i.e.  More... | |
| GLhandleARB | getProgramHandle () | 
| Returns the OpenGL shader program handle used by the ComposedShader.  | |
  Public Member Functions inherited from H3D::X3DShaderNode | |
| X3DShaderNode (Inst< DisplayList > _displayList=0, Inst< SFNode > _metadata=0, Inst< SFBool > _isSelected=0, Inst< SFBool > _isValid=0, Inst< SFBool > _activate=0, Inst< SFString > _language=0) | |
| Constructor.  | |
| virtual bool | isSupported () | 
| Returns true if the shader node type is supported by the browser.  More... | |
| void | setSelected (bool selected) | 
| Set the isSelected field.  | |
| virtual string | defaultXMLContainerField () | 
| Returns the default xml containerField attribute value.  More... | |
  Public Member Functions inherited from H3D::X3DAppearanceChildNode | |
| X3DAppearanceChildNode (Inst< DisplayList > _displayList=0, Inst< SFNode > _metadata=0) | |
| Constructor.  | |
  Public Member Functions inherited from H3D::X3DNode | |
| X3DNode (Inst< SFNode > _metadata=0) | |
| Constructor.  | |
| X3DMetadataObject * | getMetadataByName (const string &_name) | 
| Given a name, the first X3DMetadataObject in the metadata field that matches that name is returned.  More... | |
  Public Member Functions inherited from H3D::Node | |
| Node () | |
| Constructor.  | |
| virtual Node * | clone (bool deepCopy=true, DeepCopyMap *deepCopyMap=NULL) | 
| Returns a new instance of this node type with the same state as this one.  More... | |
| virtual | ~Node () | 
| Destructor.  | |
| X3DPrototypeInstance * | getProtoInstanceParent () | 
| If this node is the root node in the proto body of a X3DPrototypeInstance then this will return that node.  More... | |
| void | setProtoInstanceParent (X3DPrototypeInstance *p) | 
| Set the X3DPrototypeInstance this node is the the root node if applicaple.  | |
| virtual bool | lineIntersect (const Vec3f &from, const Vec3f &to, LineIntersectResult &result) | 
| Detect intersection between a line segment and the Node.  More... | |
| virtual void | closestPoint (const Vec3f &p, NodeIntersectResult &result) | 
| Find closest point on Node to p.  More... | |
| virtual bool | movingSphereIntersect (H3DFloat radius, const Vec3f &from, const Vec3f &to, NodeIntersectResult &result) | 
| Detect collision between a moving sphere and the Node.  More... | |
| virtual Field * | getField (const string &_name) const | 
| return a pointer to the field specified by name within this instance  | |
| int | addDestructCallback (void(*func)(Node *, void *), void *args) | 
| Add a callback function to be run on destruction of node.  More... | |
| int | removeDestructCallback (void(*func)(Node *, void *), void *args) | 
| Add a callback function to be run on destruction of node.  More... | |
  Public Member Functions inherited from H3D::H3DDisplayListObject | |
| H3DDisplayListObject (Inst< DisplayList > _displayList=0) | |
| Constructor.  | |
  Public Member Functions inherited from H3D::X3DProgrammableShaderObject | |
| X3DProgrammableShaderObject (H3DNodeDatabase *_database) | |
| Constructor.  | |
| virtual void | clearFields () | 
| Remove all dynamic fields that have been previously added.  | |
| virtual | ~X3DProgrammableShaderObject () | 
| Destructor.  | |
  Public Member Functions inherited from H3D::H3DDynamicFieldsObject | |
| field_iterator | firstField () | 
| Get an iterator to the first of the dynamic fields.  | |
| field_iterator | endField () | 
| Get an iterator pointing to the end of the dynamic fields.  | |
| H3DDynamicFieldsObject () | |
| Constructor.  | |
Static Public Attributes | |
| static H3DNodeDatabase | database | 
| The H3DNodeDatabase for this node.  | |
  Static Public Attributes inherited from H3D::H3DGeneratedShaderNode | |
| static H3DNodeDatabase | database | 
| The H3DNodeDatabase for this node.  | |
  Static Public Attributes inherited from H3D::ComposedShader | |
| static H3DNodeDatabase | database | 
| The H3DNodeDatabase for this node.  | |
  Static Public Attributes inherited from H3D::X3DShaderNode | |
| static H3DNodeDatabase | database | 
| The H3DNodeDatabase for this node.  | |
  Static Public Attributes inherited from H3D::X3DNode | |
| static H3DNodeDatabase | database | 
| The H3DNodeDatabase for this node.  | |
  Static Public Attributes inherited from H3D::X3DProgrammableShaderObject | |
| static bool | use_bindless_textures = false | 
| True if we should use bindless textures.  | |
Additional Inherited Members | |
  Public Types inherited from H3D::ComposedShader | |
| typedef DependentSFNode< ShaderConstants, FieldRef< H3DDisplayListObject, H3DDisplayListObject::DisplayList, &H3DDisplayListObject::displayList >, true > | SFShaderConstantsBase | 
| The SFShaderConstants field is dependent on the displayList field of the containing ShaderConstants node.  | |
| typedef DependentMFNode< ShaderPart, FieldRef< ShaderPart, ShaderPart::SFShaderString, &ShaderPart::shaderString >, true > | MFShaderPartBase | 
| The MFShaderPartBase is dependent on the url field of the containing ShaderPart node.  | |
  Public Types inherited from H3D::Node | |
| typedef std::map< Node *, Node * > | DeepCopyMap | 
| A map type used during a deep copy clone() to map from original nodes to cloned nodes.  | |
  Static Public Member Functions inherited from H3D::H3DGeneratedShaderNode | |
| static string | addUniformToFragmentShader (ComposedShader *shader, const string &name, const string &glsl_type, const Field::AccessType &access, Field *field, int array_size=-1, bool delete_unadded_field=true) | 
| Convenience function to add field in addUniformFields function to add uniform to fragment shader.  More... | |
  Static Public Member Functions inherited from H3D::X3DShaderNode | |
| static X3DShaderNode * | getActiveShader () | 
| Gets the currently active shader, i.e.  More... | |
  Static Public Member Functions inherited from H3D::Node | |
| static unsigned int | nrNodesAlive () | 
| Returns the nr of nodes currently alive, i.e. nodes created but not destructed.  | |
| static int | nrNodesCreated () | 
| Returns the number of nodes created in total since the start of the program.  | |
  Public Attributes inherited from H3D::H3DGeneratedShaderNode | |
| H3DUniquePtr< MFString > | fragmentShaderString | 
| Contains the generated fragment shader code.  More... | |
| H3DUniquePtr< MFString > | vertexShaderString | 
| Contains the generated vertex shader code.  More... | |
| H3DUniquePtr< RebuildShader > | rebuildShader | 
| Field used to update the shader code when an event is received.  More... | |
  Public Attributes inherited from H3D::ComposedShader | |
| H3DUniquePtr< SFShaderConstants > | shaderConstants | 
| The shaderConstants field can contain a ShaderConstants node defining constants that can be used by all ShaderPart instances in the ComposedShader node.  More... | |
| H3DUniquePtr< MFShaderPart > | parts | 
| The shader parts to use in the ComposedShader.  More... | |
| H3DUniquePtr< SFBool > | suppressUniformWarnings | 
| Suppress the warnings printed to the console about setting uniform fields that do not exist in the shader.  More... | |
| H3DUniquePtr< SFString > | geometryInputType | 
| The input geometry type of the geometry being rendered with a geometry shader.  More... | |
| H3DUniquePtr< SFString > | geometryOutputType | 
| The output geometry type of the geometry being rendered with a geometry shader.  More... | |
| H3DUniquePtr< SFInt32 > | geometryVerticesOut | 
| The number of vertices the geometry shader generates.  More... | |
| H3DUniquePtr< SFString > | transparencyDetectMode | 
| Determines how the render system will determine if the shader used generates any fragment that has an alpha channel that is < 1, i.e.  More... | |
| H3DUniquePtr< MFString > | transformFeedbackVaryings | 
| List of varying names to capture during transform feedback.  More... | |
| H3DUniquePtr< SFBool > | printShaderWarnings | 
| Always print shader warnings to console.  More... | |
  Public Attributes inherited from H3D::X3DShaderNode | |
| H3DUniquePtr< SFBool > | isSelected | 
| The isSelected output field is used to indicate that this shader instance is the one selected for use by the browser.  More... | |
| H3DUniquePtr< SFBool > | isValid | 
| The isValid field is used to indicate whether the current shader objects can be run as a shader program.  More... | |
| H3DUniquePtr< SFBool > | activate | 
| The activate field forces the shader to activate the contained objects.  More... | |
| H3DUniquePtr< EventCollectingField< Field > > | activateMonitor | 
| field used to monitor if activate field is modified  | |
| H3DUniquePtr< SFString > | language | 
| The language field is used to indicate to the browser which shading language is used for the source file(s).  More... | |
  Public Attributes inherited from H3D::X3DNode | |
| H3DUniquePtr< SFNode > | metadata | 
| Meta data about the node.  More... | |
  Public Attributes inherited from H3D::H3DDisplayListObject | |
| H3DUniquePtr< DisplayList > | displayList | 
| The DisplayList instance handling the OpenGL caching of this object.  | |
  Protected Member Functions inherited from H3D::ComposedShader | |
| void | setGeometryShaderParameters (GLenum _program_handle) | 
| Sets geometry shader paramters based on fields.  | |
  Protected Member Functions inherited from H3D::Node | |
| void | cloneFieldValue (Field &_from, Field &_to, bool deepCopy, DeepCopyMap &deepCopyMap) | 
| A helper function for the clone() method.  More... | |
  Static Protected Member Functions inherited from H3D::Node | |
| static Node * | getClonedInstance (Node *original, bool deepCopy, DeepCopyMap &deepCopyMap) | 
| A helper function for nodes that implement clone()  More... | |
  Protected Attributes inherited from H3D::ComposedShader | |
| GLhandleARB | program_handle | 
| The handle to the program object used for the shader in OpenGL.  | |
| vector< GLhandleARB > | current_shaders | 
| A vector of the handles to all shader objects that are currently linked into the program object.  | |
| H3DUniquePtr< SetupDynamicRoutes > | setupDynamicRoutes | 
| C++ fields only. Contains instance of SetupDynamicRoutes.  | |
| list< H3DSingleTextureNode * > | shader_textures | 
| list of textures to be used by the composedshader  | |
| H3DUniquePtr< UpdateUniforms > | updateUniforms | 
| A field used to update any uniforms from their corresponding fields.  | |
  Static Protected Attributes inherited from H3D::ComposedShader | |
| static bool | tessellation_support_checked = false | 
| True if a warning has already been output about missing tessellation shader support.  | |
  Static Protected Attributes inherited from H3D::X3DProgrammableShaderObject | |
| static bool | use_bindless_textures_set = false | 
| True if use_bindless_textures has already be set once.  | |
The H3DGeneratedFragmentShaderNode node is the base class for shader generator nodes that specify a fragment shader values.
In order to implement the fragment shader the node might have to specify new varying variables in the vertex shader as well as fragment shader so sub-classes can use any of the shader generation virtual functions.