|
H3D API
2.4.1
|
The ShaderProgram node provides the source and interface to a self contained program that occupies one part of the rendering process: either a vertex or fragment shader. More...
#include <H3D/ShaderProgram.h>

Public Member Functions | |
| ShaderProgram (Inst< SFNode > _metadata=0, Inst< DisplayList > _displayList=0, Inst< MFString > _url=0, Inst< SFString > _type=0) | |
| Constructor. | |
| virtual | ~ShaderProgram () |
| Destructor. | |
| virtual void | enableCGShaderProgram () |
| Makes the shader program active. | |
| virtual void | disableCGShaderProgram () |
| Disable the shader program. | |
| virtual void | initCGShaderProgram () |
| Initialize a shader program from the current field values. | |
| virtual void | destroyCGShaderProgram () |
| Destroy the current cg program object. | |
| virtual void | setCGProfile (const string &profile) |
| Set the cg profile to use. More... | |
| virtual void | render () |
| Render sets the uniform variables of the shader program. | |
| 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 string | defaultXMLContainerField () |
| Returns the default xml containerField attribute value. More... | |
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 void | traverseSG (TraverseInfo &ti) |
| traverseSG is called once per scenegraph loop on the scene in order to traverse the scenegraph. More... | |
| 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::X3DUrlObject | |
| X3DUrlObject (Inst< MFString > _url=0) | |
| Constructor. | |
| virtual LoadStatus | loadStatus () |
| The loadStatus function returns the status of the loading of the current urls in order to be used with the LoadSensor node. | |
| virtual H3DFloat | loadProgress () |
| The loadProgress() functions returns a value between 0 and 1 indicating how much of the current url has been loaded. More... | |
| void | setURLUsed (const string &_url_used) |
| Set the url that is currently loaded. | |
| const string & | getURLUsed () |
| Get the url that is currently loaded. | |
| void | setURLBase (const string &_url_base) |
| Set the url base address. | |
| const string & | getURLBase () |
| Get the current url base address. | |
| string | resolveURLAsFile (const string &url, bool *is_tmp_file=NULL) |
| Get the url as a local file. | |
| string | resolveURLAsString (const string &url) |
| Get the content of the URL as a string. | |
| bool | removeTmpFile (const string &file) |
| Remove a tmpfile with the given name. More... | |
Public Member Functions inherited from H3D::X3DProgrammableShaderObject | |
| X3DProgrammableShaderObject (H3DNodeDatabase *_database) | |
| Constructor. | |
| virtual bool | removeField (const string &_name) |
| Remove a shader field uniform. | |
| 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. | |
Public Member Functions inherited from H3D::H3DDisplayListObject | |
| H3DDisplayListObject (Inst< DisplayList > _displayList=0) | |
| Constructor. | |
Public Attributes | |
| H3DUniquePtr< SFString > | type |
| The type field indicates whether this object shall be compiled as a vertex shader, fragment shader, or other future-defined shader type. More... | |
Public Attributes inherited from H3D::X3DNode | |
| H3DUniquePtr< SFNode > | metadata |
| Meta data about the node. More... | |
Public Attributes inherited from H3D::X3DUrlObject | |
| H3DUniquePtr< MFString > | url |
| The urls in decreasing order of preference. | |
Public Attributes inherited from H3D::H3DDisplayListObject | |
| H3DUniquePtr< DisplayList > | displayList |
| The DisplayList instance handling the OpenGL caching of this object. | |
Static Public Attributes | |
| 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::Node | |
| typedef std::map< Node *, Node * > | DeepCopyMap |
| A map type used during a deep copy clone() to map from original nodes to cloned nodes. | |
Public Types inherited from H3D::X3DUrlObject | |
| enum | LoadStatus { INIT , LOADED , LOADING , FAILED } |
| The load status of the given url. 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. | |
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... | |
Protected Member Functions inherited from H3D::X3DUrlObject | |
| string | resolveURL (const string &_url, bool return_contents, bool *is_tmp_file=NULL) |
| Helper function for resolveURLAs*() functions. | |
| void | addInlinePrefix (const string &s) |
| Add a inline prefix that this node supports. | |
| int | getInlinedContentOffset (const std::string &url) |
| If the URL contains any inline prefix, return the index of the start of the inlined content. 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::X3DUrlObject | |
| string | url_used |
| If loadStatus() returns LOADED this string should contain the url that is loaded. More... | |
| string | url_base |
| The base URL for urls in this url object. More... | |
| list< string > | supported_inline_prefixes |
| A list of inline prefixes that are supported by this url object. More... | |
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 ShaderProgram node provides the source and interface to a self contained program that occupies one part of the rendering process: either a vertex or fragment shader.
The shader source is read from the URL specified by the url field. When the url field contains no values ([]), this object instance is ignored. Shader source files shall be plain text encoded as specified for MIME type text/plain and interpreted according to the containing node's language definition.
Examples:
|
inlinevirtual |
Returns the default xml containerField attribute value.
For this node it is "programs".
Reimplemented from H3D::Node.
|
virtual |
Set the cg profile to use.
The string is one of the strings specified in the X3D specification (CG Annex K). Returns true if profile is supported.
Referenced by ShaderProgram().
| H3DUniquePtr< SFString > H3D::ShaderProgram::type |
The type field indicates whether this object shall be compiled as a vertex shader, fragment shader, or other future-defined shader type.
Valid values are "VERTEX" and "FRAGMENT".
Access type: initializeOnly
Referenced by initCGShaderProgram(), and ShaderProgram().