| 
    H3D API
    2.4.1
    
   | 
 
ShaderImage2D is a 3D image which can allow openGL to read from 
 and write to.  
 More...
#include <H3D/ShaderImage3D.h>

Public Member Functions | |
| ShaderImage3D (Inst< DisplayList > _displayList=0, Inst< SFNode > _metadata=0, Inst< SFInt32 > _width=0, Inst< SFInt32 > _height=0, Inst< SFInt32 > _depth=0, Inst< SFString > _format=0) | |
| Constructor.  | |
| virtual void | render () | 
| the render() function is used for the depth-first rendering traversal of the scene-graph.  More... | |
| virtual void | prepareShaderImage () | 
| virtual void renderImage( unsigned int texture_unit_id ); set up texture and image and configure them  | |
  Public Member Functions inherited from H3D::ShaderImageNode | |
| ShaderImageNode (Inst< DisplayList > _displayList=0, Inst< SFNode > _metadata=0) | |
| Constructor.  | |
| virtual void | preRender () | 
| override preRender function to do nothing as it is not needed for shader image node  | |
| virtual void | postRender () | 
| override postRender function to do nothing as it is not needed for shader image node  | |
| virtual void | enableTexturing () | 
| enableTexturing is not needed for shader image node  | |
| virtual void | disableTexturing () | 
| disableTexturing is not needed for shader image node  | |
  Public Member Functions inherited from H3D::H3DSingleTextureNode | |
| H3DSingleTextureNode (Inst< DisplayList > _displayList=0, Inst< SFNode > _metadata=0, Inst< UpdateSaveToURL > _saveToUrl=0, Inst< SFBool > _saveSuccess=0, Inst< SFInt32 > _saveHeight=0, Inst< SFInt32 > _saveWidth=0) | |
| Constructor.  | |
| virtual | ~H3DSingleTextureNode () | 
| Destructor.  | |
| virtual GLuint | getTextureId () | 
| Get the OpenGL texture id that is used for this texture.  | |
| virtual GLuint | getTextureUnit () | 
| Get the OpenGL texture unit that is used for this texture.  | |
| virtual GLenum | getTextureTarget () | 
| Get the OpenGL texture target that is used for this texture.  | |
| virtual int | getTextureWidth () | 
| Get the texture width.  | |
| virtual int | getTextureHeight () | 
| Get the texture height.  | |
| virtual int | getTextureDepth () | 
| Get the texture depth.  | |
| virtual void | setTextureWidth (int _width) | 
| Set the texture width.  | |
| virtual void | setTextureHeight (int _height) | 
| Set the texture height.  | |
| virtual void | setTextureDepth (int _depth) | 
| Set the texture depth.  | |
| virtual void | setTextureId (GLuint _id) | 
| Set the OpenGL texture id that is used for this texture.  | |
| virtual void | setTextureUnit (GLint unit) | 
| Set the OpenGL texture unit that is used for this texture.  | |
| virtual void | setTextureTarget (GLenum target) | 
| Set the OpenGL texture target that is used for this texture.  | |
| virtual bool | makeResident () | 
| { Bindless texturing functions  More... | |
| virtual void | makeNonResident () | 
| Make the texture non-resident.  | |
| virtual bool | isResident () | 
| Returns true if the texture is resident in GPU memory or false otherwise.  | |
| virtual GLuint64 | getTextureHandle () | 
| Get the bindless texture handle, or 0 the texture has never been resident.  More... | |
| virtual void | invalidateTextureHandle () | 
| This should be called if the texture object is to be replaced.  More... | |
| void | addShaderField (Field &_field) | 
| Add a shader field which contains this texture node.  More... | |
| void | removeShaderField (Field &_field) | 
| Remove a shader field which contains this texture node.  More... | |
| virtual void | inUse () | 
| Call to signify that this texture is currently in use.  More... | |
  Public Member Functions inherited from H3D::X3DTextureNode | |
| X3DTextureNode (Inst< DisplayList > _displayList=0, Inst< SFNode > _metadata=0, Inst< UpdateSaveToURL > _saveToUrl=0, Inst< SFBool > _saveSuccess=0, Inst< SFInt32 > _saveHeight=0, Inst< SFInt32 > _saveWidth=0) | |
| Constructor.  | |
| virtual string | defaultXMLContainerField () | 
| Returns the default xml containerField attribute value.  More... | |
| virtual GLbitfield | getAffectedGLAttribs () | 
| Returns a bitmask of the OpenGL attrib bits that will be affected by this node.  More... | |
| virtual Vec3f | textureSize () | 
| Sometimes the texture represents a volume in space, e.g.  More... | |
| virtual GLuint | renderImage (Image *image, GLenum texture_target, bool scale_to_power_of_two) | 
| Installs the image as a OpenGL texture.  More... | |
| virtual GLint | glInternalFormat (Image *image) | 
| Returns the internal OpenGL format to use given an Image, e.g.  More... | |
| virtual GLenum | glPixelFormat (Image *image) | 
| Returns the OpenGL pixel format to use given an Image, e.g.  More... | |
| virtual GLenum | glPixelComponentType (Image *image) | 
| Returns the OpenGL pixel compnent type to use given an Image, e.g.  More... | |
| virtual void | glTexImage (Image *, GLenum, bool) | 
| Install the given image as a OpenGL texture with a call to a glTexImage function.  More... | |
| virtual Image * | renderToImage (H3DInt32 _width, H3DInt32 _height, bool output_float_texture=false) | 
| Create a new Image object which contains the result of rendering this texture.  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 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::H3DDisplayListObject | |
| H3DDisplayListObject (Inst< DisplayList > _displayList=0) | |
| Constructor.  | |
Public Attributes | |
| H3DUniquePtr< SFInt32 > | width | 
| the width of texture image Access type: inputOutput  Default value: 512  | |
| H3DUniquePtr< SFInt32 > | height | 
| the height of texture image Access type: inputOutput  Default value: 512  | |
| H3DUniquePtr< SFInt32 > | depth | 
| the depth of this 3D texture image Access type: inputOutput  Default value: 8  | |
| H3DUniquePtr< SFString > | format | 
| image internal format to describe how many component are there for the image and for each component, how many bits are there.  More... | |
  Public Attributes inherited from H3D::X3DTextureNode | |
| H3DUniquePtr< UpdateSaveToURL > | saveToUrl | 
| When a new value is specified for saveToUrl the current texture is rendered to a buffer and saved to the specified filename.  More... | |
| H3DUniquePtr< SFBool > | saveSuccess | 
| Contains the result of the last save operation.  More... | |
| H3DUniquePtr< SFInt32 > | saveHeight | 
| The height of the image to write to file when the saveToUrl field is used.  More... | |
| H3DUniquePtr< SFInt32 > | saveWidth | 
| The width of the image to write to file when the saveToUrl field is used.  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.  | |
Static Public Attributes | |
| static H3DNodeDatabase | database | 
| The H3DNodeDatabase for this node.  | |
  Static Public Attributes inherited from H3D::X3DTextureNode | |
| static bool | load_images_in_separate_thread = true | 
| This is the default value for the GlobalSettings::loadTexturesInThread field.  More... | |
| static H3DNodeDatabase | database | 
| The H3DNodeDatabase for this node.  | |
  Static Public Attributes inherited from H3D::X3DNode | |
| static H3DNodeDatabase | database | 
| The H3DNodeDatabase for this node.  | |
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::H3DSingleTextureNode | |
| static void | makeUnusedTexturesNonResident (H3DTime _unusedTime) | 
| Look at all resident textures and make those that have not been used recently non-resident.  More... | |
  Static Public Member Functions inherited from H3D::X3DTextureNode | |
| static X3DTextureNode * | getActiveTexture () | 
| Gets the currently active texture, i.e.  More... | |
| static void | setActiveTexture (X3DTextureNode *t) | 
| Set the active texture.  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 Types inherited from H3D::H3DSingleTextureNode | |
| typedef std::vector< H3DSingleTextureNode * > | TextureVector | 
| }  | |
  Protected Member Functions inherited from H3D::X3DTextureNode | |
| virtual std::pair< H3DInt32, H3DInt32 > | getDefaultSaveDimensions () | 
| Returns the default dimensions to use when this texture is saved to file.  More... | |
| GLint | glCompressedInternalFormat (GLint _format, const std::string &_compression) | 
| Given a non-compressed internal format, return an equivelent compressed format based on the compression settings.  More... | |
  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::ShaderImageNode | |
| GLuint | image_unit | 
| image unit used, will be used to bind to shader program the value of image_unit will be maintained in this node.  More... | |
| H3DUniquePtr< Field > | reinitShaderImage | 
| flag field to help check if shader image need to be re-initialized  | |
  Protected Attributes inherited from H3D::H3DSingleTextureNode | |
| GLuint64 | texture_handle | 
| The texture handle (GPU)  | |
| GLuint | texture_id | 
| The OpenGL texture id of the installed texture, 0 if not installed.  | |
| GLint | texture_unit | 
| The OpenGL texture unit that is used to render this texture.  More... | |
| GLenum | texture_target | 
| The OpenGL texture target that is used to render this texture.  | |
| int | texture_width | 
| texture width  | |
| int | texture_height | 
| texture height  | |
| int | texture_depth | 
| texture depth  | |
| Field::FieldVector | shader_fields | 
| Shader fields which contain this texture.  | |
| H3DTime | last_used | 
| Time-stamp at which this texture was last used.  | |
| bool | is_resident | 
| True if this texture is currently resident.  | |
  Static Protected Attributes inherited from H3D::H3DSingleTextureNode | |
| static TextureVector | resident_textures | 
| List of all currently resident textures.  | |
ShaderImage2D is a 3D image which can allow openGL to read from 
 and write to. 
It comes with extension ARB_shader_image_load_store
Examples:
      
  | 
  virtual | 
the render() function is used for the depth-first rendering traversal of the scene-graph.
 
Reimplemented from H3D::Node.
References format, H3D::ShaderImageNode::image_unit, prepareShaderImage(), H3D::ShaderImageNode::reinitShaderImage, H3D::H3DSingleTextureNode::texture_id, and H3D::H3DSingleTextureNode::texture_unit.
| H3DUniquePtr<SFString> H3D::ShaderImage3D::format | 
image internal format to describe how many component are there for the image and for each component, how many bits are there.
Access type: inputOutput 
Default value: GL_RGBA16F 
Valid values: "GL_RGBA16F", "GL_RGBA32F" 
Referenced by prepareShaderImage(), render(), and ShaderImage3D().