javax.media.j3d

## Class ShaderAttributeBinding

- java.lang.Object
- - javax.media.j3d.SceneGraphObject
  - - javax.media.j3d.NodeComponent
    - - javax.media.j3d.ShaderAttribute
      - - javax.media.j3d.ShaderAttributeBinding

-     public class ShaderAttributeBinding
      extends ShaderAttribute

  The ShaderAttributeBinding object encapsulates a uniform attribute whose value is bound to a Java 3D system attribute. The shader variable `attrName` is implicitly set to the value of the corresponding Java 3D system attribute `j3dAttrName` during rendering. `attrName` must be the name of a valid uniform attribute in the shader in which it is used. Otherwise, the attribute name will be ignored and a runtime error may be generated. `j3dAttrName` must be the name of a predefined Java 3D system attribute. An IllegalArgumentException will be thrown if the specified `j3dAttrName` is not one of the predefined system attributes. Further, the type of the `j3dAttrName` attribute must match the type of the corresponding `attrName` variable in the shader in which it is used. Otherwise, the shader will not be able to use the attribute and a runtime error may be generated.

  Following is the list of predefined Java 3D system attributes:

  TODO: replace the following with the real system attributes table

  Name | Type | Description
  `something` | Float | This is something (of course)
  `somethingElse` | Tuple3f | This is something else

  Depending on the shading language (and profile) being used, several Java 3D state attributes are automatically made available to the shader program as pre-defined uniform attributes. The application doesn't need to do anything to pass these attributes in to the shader program. The implementation of each shader language (e.g., Cg, GLSL) defines its own mapping from Java 3D attribute to uniform variable name.

  A list of these attributes for each shader language can be found in the concrete subclass of ShaderProgram for that shader language.

  NOTE: This class is not yet implemented.

  Since:
    Java 3D 1.4
  See Also:
    `ShaderAttributeSet`, `ShaderProgram`

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `ShaderAttributeBinding(java.lang.String attrName, java.lang.String j3dAttrName)` Constructs a new ShaderAttributeBinding from the specified `(attrName, j3dAttrName)` pair.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.String` | `getJ3DAttributeName()` Retrieves the name of the Java 3D system attribute that is bound to this shader attribute.

    - ### Methods inherited from class javax.media.j3d.ShaderAttribute

      `getAttributeName`

    - ### Methods inherited from class javax.media.j3d.NodeComponent

      `cloneNodeComponent, cloneNodeComponent, duplicateNodeComponent, duplicateNodeComponent, getDuplicateOnCloneTree, setDuplicateOnCloneTree`

    - ### Methods inherited from class javax.media.j3d.SceneGraphObject

      `clearCapability, clearCapabilityIsFrequent, duplicateSceneGraphObject, getCapability, getCapabilityIsFrequent, getName, getUserData, isCompiled, isLive, setCapability, setCapabilityIsFrequent, setName, setUserData, toString, updateNodeReferences`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### ShaderAttributeBinding

          public ShaderAttributeBinding(java.lang.String attrName,
                                java.lang.String j3dAttrName)

      Constructs a new ShaderAttributeBinding from the specified `(attrName, j3dAttrName)` pair.
      Parameters:
        `attrName` - the name of the shader attribute to be added
        `j3dAttrName` - the name of the Java 3D attribute to bind to the shader attribute
      Throws:
        `java.lang.UnsupportedOperationException` - this class is not yet implemented
        `java.lang.NullPointerException` - if attrName or j3dAttrName is null
        `java.lang.IllegalArgumentException` - if j3dAttrName is not the name of a valid predefined Java 3D system attribute

  - ### Method Detail

    - #### getJ3DAttributeName

          public java.lang.String getJ3DAttributeName()

      Retrieves the name of the Java 3D system attribute that is bound to this shader attribute.
      Returns:
        the name of the Java 3D system attribute that is bound to this shader attribute

Copyright 1996-2008 Sun Microsystems, Inc. All Rights Reserved. Use is subject to license terms.