|
H3D API
2.4.1
|
This node provide a buffer object for OpenGL shader program to write into and read from. More...
#include <H3D/ShaderStorageBuffer.h>

Public Member Functions | |
| ShaderStorageBuffer (Inst< DisplayList > _displayList=0, Inst< SFNode > _metadata=0, Inst< SFInt32 > _width=0, Inst< SFInt32 > _height=0, Inst< SFInt32 > _depth=0, Inst< SFInt32 > _dataSize=0, Inst< SFString > _storageName=0) | |
| Constructor. | |
| virtual void | preRender (unsigned int program) |
| specify the program will be used for attaching this shader storage buffer | |
| virtual void | render () |
| update storage specification if necessary and attach it the shader program to be used | |
| virtual void | prepareStorageBuffer () |
| update storage buffer | |
Public Member Functions inherited from H3D::ShaderChildNode | |
| ShaderChildNode (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 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 string | defaultXMLContainerField () |
| Returns the default xml containerField attribute value. 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 Attributes | |
| H3DUniquePtr< SFInt32 > | width |
| horizontal dimension for the data Access type: inputOutput Default value: 512 | |
| H3DUniquePtr< SFInt32 > | height |
| vertical dimension for the data Access type: inputOutput Default value: 512 | |
| H3DUniquePtr< SFInt32 > | depth |
| layers for the data Access type: inputOutput Default value: 16 | |
| H3DUniquePtr< SFInt32 > | dataSize |
| data size of the structure used for shader storage buffer the metric is bytes Access type: inputOutput Default value: 4 | |
| H3DUniquePtr< SFString > | storageName |
| storage buffer name used in shader by default, it will use the node name if not being set Access type: inputOutput | |
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. | |
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. | |
Protected Attributes | |
| unsigned int | program_handle |
| shader program that this shader storage buffer will be attached | |
| int | buffer_id |
| buffer id, generated by openGL | |
| unsigned int | storage_block_index |
| the active block index assigned by the shader, will have valid value only after the shader program get linked. | |
| int | storage_block_binding |
| the block binding point for shader storage buffer in openGL context its value must be less than the MAX_SHADER_STORAGE_BUFFER_BINDINGS. More... | |
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. | |
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... | |
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... | |
This node provide a buffer object for OpenGL shader program to write into and read from.
Examples:
|
protected |
the block binding point for shader storage buffer in openGL context its value must be less than the MAX_SHADER_STORAGE_BUFFER_BINDINGS.
together with storage_block_index, it will connect the shader storage buffer between OpenGL and shader program
Referenced by prepareStorageBuffer(), render(), and ShaderStorageBuffer().