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