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 |
ShaderAttributeBinding(java.lang.String attrName,
java.lang.String j3dAttrName)
Constructs a new ShaderAttributeBinding from the specified
(attrName, j3dAttrName) pair. |
Method Summary |
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.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 |
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 addedj3dAttrName
- 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
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 (c) 2007 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms.