|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjavax.media.j3d.IndexedObject
javax.media.j3d.SceneGraphObjectRetained
javax.media.j3d.NodeComponentRetained
javax.media.j3d.ShaderProgramRetained
abstract class ShaderProgramRetained
The ShaderProgramRetained object is a component object of an AppearanceRetained object that defines the shader properties used when programmable shader is enabled. ShaderProgramRetained object is an abstract class. All shader program objects must be created as either a GLSLShaderProgramRetained object or a CgShaderProgramRetained object.
Nested Class Summary | |
---|---|
(package private) class |
ShaderProgramRetained.AttrNameInfo
|
(package private) class |
ShaderProgramRetained.ShaderProgramData
|
Field Summary | |
---|---|
private boolean |
linkErrorOccurred
|
(package private) java.lang.Object |
resourceLock
|
private java.util.HashSet |
shaderAttrErrorSet
|
protected java.lang.String[] |
shaderAttrNames
|
protected ShaderProgramRetained.ShaderProgramData[] |
shaderProgramData
|
protected ShaderRetained[] |
shaders
|
private boolean |
unsupportedErrorReported
|
protected java.lang.String[] |
vertexAttrNames
|
Fields inherited from class javax.media.j3d.NodeComponentRetained |
---|
changedFrequent, compChanged, duplicateOnCloneTree, mirror, refCnt, refCount, users |
Fields inherited from class javax.media.j3d.SceneGraphObjectRetained |
---|
DONT_MERGE, inBackgroundGroup, inSetLive, MERGE, MERGE_DONE, mergeFlag, onUpdateList, source |
Fields inherited from class javax.media.j3d.IndexedObject |
---|
listIdx |
Constructor Summary | |
---|---|
ShaderProgramRetained()
|
Method Summary | |
---|---|
private ShaderError |
bindVertexAttrName(Canvas3D cv,
int cvRdrIndex,
java.lang.String attrName,
int attrIndex)
|
(package private) abstract ShaderError |
bindVertexAttrName(Context ctx,
ShaderProgramId shaderProgramId,
java.lang.String attrName,
int attrIndex)
Method to bind a vertex attribute name to the specified index. |
(package private) void |
clearLive(int refCount)
|
private ShaderError |
compileShader(Canvas3D cv,
int cvRdrIndex,
ShaderRetained shader)
Method to compile the native shader. |
(package private) abstract ShaderError |
compileShader(Context ctx,
ShaderId shaderId,
java.lang.String source)
Method to compile the native shader. |
private ShaderError |
createShader(Canvas3D cv,
int cvRdrIndex,
ShaderRetained shader)
Method to create the native shader. |
(package private) abstract ShaderError |
createShader(Context ctx,
ShaderRetained shader,
ShaderId[] shaderIdArr)
Method to create the native shader. |
private ShaderError |
createShaderProgram(Canvas3D cv,
int cvRdrIndex)
Method to create the native shader program. |
(package private) abstract ShaderError |
createShaderProgram(Context ctx,
ShaderProgramId[] shaderProgramIdArr)
Method to create the native shader program. |
private void |
createShaderProgramData(int cvRdrIndex,
long ctxTimeStamp)
Method to create a ShaderProgramData object for the specified canvas/renderer if it doesn't already exist. |
(package private) void |
destroyShader(Canvas3D cv,
int cvRdrIndex,
ShaderRetained shader)
Method to destroy the native shader. |
(package private) abstract ShaderError |
destroyShader(Context ctx,
ShaderId shaderId)
Method to destroy the native shader. |
(package private) void |
destroyShaderProgram(Canvas3D cv,
int cvRdrIndex)
Method to destroy the native shader program. |
(package private) abstract ShaderError |
destroyShaderProgram(Context ctx,
ShaderProgramId shaderProgramId)
Method to destroy the native shader program. |
private ShaderError |
disableShaderProgram(Canvas3D cv)
Method to disable the native shader program. |
(package private) abstract ShaderError |
disableShaderProgram(Context ctx)
Method to disable the native shader program. |
private ShaderError |
enableShaderProgram(Canvas3D cv,
int cvRdrIndex)
Method to enable the native shader program. |
(package private) abstract ShaderError |
enableShaderProgram(Context ctx,
ShaderProgramId shaderProgramId)
Method to use the native shader program. |
(package private) java.lang.String[] |
getShaderAttrNames()
Retrieves the shader attribute names array from this ShaderProgram object. |
private ShaderProgramRetained.ShaderProgramData |
getShaderProgramData(int cvRdrIndex)
Method to return the shaderProgram data for the specified canvas or renderer |
(package private) Shader[] |
getShaders()
Retrieves the array of shaders from this shader program. |
(package private) java.lang.String[] |
getVertexAttrNames()
Retrieves the vertex attribute names array from this ShaderProgram object. |
(package private) void |
initMirrorObject()
Initializes a mirror object. |
(package private) abstract boolean |
isSupported(Canvas3D cv)
Method to return a flag indicating whether this ShaderProgram is supported on the specified Canvas. |
private ShaderError |
linkShaderProgram(Canvas3D cv,
int cvRdrIndex,
ShaderRetained[] shaders)
Method to link the native shader program. |
(package private) abstract ShaderError |
linkShaderProgram(Context ctx,
ShaderProgramId shaderProgramId,
ShaderId[] shaderIds)
Method to link the native shader program. |
private void |
lookupShaderAttrNames(Canvas3D cv,
int cvRdrIndex,
java.lang.String[] attrNames)
|
(package private) abstract void |
lookupShaderAttrNames(Context ctx,
ShaderProgramId shaderProgramId,
java.lang.String[] attrNames,
ShaderProgramRetained.AttrNameInfo[] attrNameInfoArr)
Method to lookup a list of (uniform) shader attribute names and return information about the attributes. |
private void |
lookupVertexAttrNames(Canvas3D cv,
int cvRdrIndex,
java.lang.String[] attrNames)
|
(package private) abstract void |
lookupVertexAttrNames(Context ctx,
ShaderProgramId shaderProgramId,
java.lang.String[] attrNames,
boolean[] errArr)
|
(package private) void |
notifyErrorListeners(Canvas3D cv,
ShaderError err)
Send a message to the notification thread, which will call the shader error listeners. |
(package private) void |
setLive(boolean backgroundGroup,
int refCount)
|
(package private) void |
setShaderAttributes(Canvas3D cv,
ShaderAttributeSetRetained attributeSet)
|
(package private) void |
setShaderAttrNames(java.lang.String[] shaderAttrNames)
Sets the shader attribute names array for this ShaderProgram object. |
(package private) void |
setShaders(Shader[] shaders)
Copies the specified array of shaders into this shader program. |
(package private) abstract ShaderError |
setUniform1f(Context ctx,
ShaderProgramId shaderProgramId,
ShaderAttrLoc uniformLocation,
float value)
|
(package private) abstract ShaderError |
setUniform1fArray(Context ctx,
ShaderProgramId shaderProgramId,
ShaderAttrLoc uniformLocation,
int numElements,
float[] value)
|
(package private) abstract ShaderError |
setUniform1i(Context ctx,
ShaderProgramId shaderProgramId,
ShaderAttrLoc uniformLocation,
int value)
|
(package private) abstract ShaderError |
setUniform1iArray(Context ctx,
ShaderProgramId shaderProgramId,
ShaderAttrLoc uniformLocation,
int numElements,
int[] value)
|
(package private) abstract ShaderError |
setUniform2f(Context ctx,
ShaderProgramId shaderProgramId,
ShaderAttrLoc uniformLocation,
float[] value)
|
(package private) abstract ShaderError |
setUniform2fArray(Context ctx,
ShaderProgramId shaderProgramId,
ShaderAttrLoc uniformLocation,
int numElements,
float[] value)
|
(package private) abstract ShaderError |
setUniform2i(Context ctx,
ShaderProgramId shaderProgramId,
ShaderAttrLoc uniformLocation,
int[] value)
|
(package private) abstract ShaderError |
setUniform2iArray(Context ctx,
ShaderProgramId shaderProgramId,
ShaderAttrLoc uniformLocation,
int numElements,
int[] value)
|
(package private) abstract ShaderError |
setUniform3f(Context ctx,
ShaderProgramId shaderProgramId,
ShaderAttrLoc uniformLocation,
float[] value)
|
(package private) abstract ShaderError |
setUniform3fArray(Context ctx,
ShaderProgramId shaderProgramId,
ShaderAttrLoc uniformLocation,
int numElements,
float[] value)
|
(package private) abstract ShaderError |
setUniform3i(Context ctx,
ShaderProgramId shaderProgramId,
ShaderAttrLoc uniformLocation,
int[] value)
|
(package private) abstract ShaderError |
setUniform3iArray(Context ctx,
ShaderProgramId shaderProgramId,
ShaderAttrLoc uniformLocation,
int numElements,
int[] value)
|
(package private) abstract ShaderError |
setUniform4f(Context ctx,
ShaderProgramId shaderProgramId,
ShaderAttrLoc uniformLocation,
float[] value)
|
(package private) abstract ShaderError |
setUniform4fArray(Context ctx,
ShaderProgramId shaderProgramId,
ShaderAttrLoc uniformLocation,
int numElements,
float[] value)
|
(package private) abstract ShaderError |
setUniform4i(Context ctx,
ShaderProgramId shaderProgramId,
ShaderAttrLoc uniformLocation,
int[] value)
|
(package private) abstract ShaderError |
setUniform4iArray(Context ctx,
ShaderProgramId shaderProgramId,
ShaderAttrLoc uniformLocation,
int numElements,
int[] value)
|
(package private) ShaderError |
setUniformAttrArray(Context ctx,
ShaderProgramId shaderProgramId,
ShaderAttrLoc loc,
ShaderAttributeArrayRetained saa)
Update native value for ShaderAttributeArray class |
(package private) ShaderError |
setUniformAttrValue(Context ctx,
ShaderProgramId shaderProgramId,
ShaderAttrLoc loc,
ShaderAttributeValueRetained sav)
Update native value for ShaderAttributeValue class |
(package private) abstract ShaderError |
setUniformMatrix3f(Context ctx,
ShaderProgramId shaderProgramId,
ShaderAttrLoc uniformLocation,
float[] value)
|
(package private) abstract ShaderError |
setUniformMatrix3fArray(Context ctx,
ShaderProgramId shaderProgramId,
ShaderAttrLoc uniformLocation,
int numElements,
float[] value)
|
(package private) abstract ShaderError |
setUniformMatrix4f(Context ctx,
ShaderProgramId shaderProgramId,
ShaderAttrLoc uniformLocation,
float[] value)
|
(package private) abstract ShaderError |
setUniformMatrix4fArray(Context ctx,
ShaderProgramId shaderProgramId,
ShaderAttrLoc uniformLocation,
int numElements,
float[] value)
|
(package private) void |
setVertexAttrNames(java.lang.String[] vertexAttrNames)
Sets the vertex attribute names array for this ShaderProgram object. |
(package private) void |
updateMirrorObject(int component,
java.lang.Object value)
Update the "component" field of the mirror object with the given "value" |
(package private) void |
updateNative(Canvas3D cv,
boolean enable)
updateNative is called while traversing the RenderBin to update the shader program state |
private boolean |
verifyShaderProgramSupported(Canvas3D cv)
This method checks whether this ShaderProgram is supported on the specified Canvas. |
Methods inherited from class javax.media.j3d.NodeComponentRetained |
---|
addAMirrorUser, addUser, clone, copyMirrorUsers, createMirrorObject, decRefCnt, doSetLive, getDuplicateOnCloneTree, getInImmCtx, incRefCnt, notifyUsers, removeAMirrorUser, removeMirrorUsers, removeUser, set, setDuplicateOnCloneTree, setFrequencyChangeMask, setInImmCtx |
Methods inherited from class javax.media.j3d.SceneGraphObjectRetained |
---|
clearLive, clearLive, compile, doSetLive, doSetLive, getSource, getVirtualUniverse, handleFrequencyChange, isInSetLive, isStatic, markAsLive, merge, mergeTransform, setCompiled, setLive, setLive, setSource, traverse |
Methods inherited from class javax.media.j3d.IndexedObject |
---|
getIdxUsed, incIdxUsed |
Methods inherited from class java.lang.Object |
---|
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected ShaderProgramRetained.ShaderProgramData[] shaderProgramData
private boolean unsupportedErrorReported
private boolean linkErrorOccurred
protected ShaderRetained[] shaders
protected java.lang.String[] vertexAttrNames
protected java.lang.String[] shaderAttrNames
private java.util.HashSet shaderAttrErrorSet
java.lang.Object resourceLock
Constructor Detail |
---|
ShaderProgramRetained()
Method Detail |
---|
void setVertexAttrNames(java.lang.String[] vertexAttrNames)
vertexAttrNames
- array of vertex attribute names for this
shader program. A copy of this array is made.java.lang.String[] getVertexAttrNames()
void setShaderAttrNames(java.lang.String[] shaderAttrNames)
shaderAttrNames
- array of shader attribute names for this
shader program. A copy of this array is made.java.lang.String[] getShaderAttrNames()
void setShaders(Shader[] shaders)
shaders
- array of Shader objects to be copied into this
ShaderProgram
CapabilityNotSetException
- if appropriate capability is
not set and this object is part of live or compiled scene graph
java.lang.IllegalArgumentException
- if the shading language of
any shader in the shaders array doesn't match the type of the
subclass.Shader[] getShaders()
abstract ShaderError createShader(Context ctx, ShaderRetained shader, ShaderId[] shaderIdArr)
abstract ShaderError destroyShader(Context ctx, ShaderId shaderId)
abstract ShaderError compileShader(Context ctx, ShaderId shaderId, java.lang.String source)
abstract ShaderError createShaderProgram(Context ctx, ShaderProgramId[] shaderProgramIdArr)
abstract ShaderError destroyShaderProgram(Context ctx, ShaderProgramId shaderProgramId)
abstract ShaderError linkShaderProgram(Context ctx, ShaderProgramId shaderProgramId, ShaderId[] shaderIds)
abstract ShaderError bindVertexAttrName(Context ctx, ShaderProgramId shaderProgramId, java.lang.String attrName, int attrIndex)
abstract void lookupShaderAttrNames(Context ctx, ShaderProgramId shaderProgramId, java.lang.String[] attrNames, ShaderProgramRetained.AttrNameInfo[] attrNameInfoArr)
abstract void lookupVertexAttrNames(Context ctx, ShaderProgramId shaderProgramId, java.lang.String[] attrNames, boolean[] errArr)
abstract ShaderError enableShaderProgram(Context ctx, ShaderProgramId shaderProgramId)
abstract ShaderError disableShaderProgram(Context ctx)
abstract ShaderError setUniform1i(Context ctx, ShaderProgramId shaderProgramId, ShaderAttrLoc uniformLocation, int value)
abstract ShaderError setUniform1f(Context ctx, ShaderProgramId shaderProgramId, ShaderAttrLoc uniformLocation, float value)
abstract ShaderError setUniform2i(Context ctx, ShaderProgramId shaderProgramId, ShaderAttrLoc uniformLocation, int[] value)
abstract ShaderError setUniform2f(Context ctx, ShaderProgramId shaderProgramId, ShaderAttrLoc uniformLocation, float[] value)
abstract ShaderError setUniform3i(Context ctx, ShaderProgramId shaderProgramId, ShaderAttrLoc uniformLocation, int[] value)
abstract ShaderError setUniform3f(Context ctx, ShaderProgramId shaderProgramId, ShaderAttrLoc uniformLocation, float[] value)
abstract ShaderError setUniform4i(Context ctx, ShaderProgramId shaderProgramId, ShaderAttrLoc uniformLocation, int[] value)
abstract ShaderError setUniform4f(Context ctx, ShaderProgramId shaderProgramId, ShaderAttrLoc uniformLocation, float[] value)
abstract ShaderError setUniformMatrix3f(Context ctx, ShaderProgramId shaderProgramId, ShaderAttrLoc uniformLocation, float[] value)
abstract ShaderError setUniformMatrix4f(Context ctx, ShaderProgramId shaderProgramId, ShaderAttrLoc uniformLocation, float[] value)
abstract ShaderError setUniform1iArray(Context ctx, ShaderProgramId shaderProgramId, ShaderAttrLoc uniformLocation, int numElements, int[] value)
abstract ShaderError setUniform1fArray(Context ctx, ShaderProgramId shaderProgramId, ShaderAttrLoc uniformLocation, int numElements, float[] value)
abstract ShaderError setUniform2iArray(Context ctx, ShaderProgramId shaderProgramId, ShaderAttrLoc uniformLocation, int numElements, int[] value)
abstract ShaderError setUniform2fArray(Context ctx, ShaderProgramId shaderProgramId, ShaderAttrLoc uniformLocation, int numElements, float[] value)
abstract ShaderError setUniform3iArray(Context ctx, ShaderProgramId shaderProgramId, ShaderAttrLoc uniformLocation, int numElements, int[] value)
abstract ShaderError setUniform3fArray(Context ctx, ShaderProgramId shaderProgramId, ShaderAttrLoc uniformLocation, int numElements, float[] value)
abstract ShaderError setUniform4iArray(Context ctx, ShaderProgramId shaderProgramId, ShaderAttrLoc uniformLocation, int numElements, int[] value)
abstract ShaderError setUniform4fArray(Context ctx, ShaderProgramId shaderProgramId, ShaderAttrLoc uniformLocation, int numElements, float[] value)
abstract ShaderError setUniformMatrix3fArray(Context ctx, ShaderProgramId shaderProgramId, ShaderAttrLoc uniformLocation, int numElements, float[] value)
abstract ShaderError setUniformMatrix4fArray(Context ctx, ShaderProgramId shaderProgramId, ShaderAttrLoc uniformLocation, int numElements, float[] value)
abstract boolean isSupported(Canvas3D cv)
void setLive(boolean backgroundGroup, int refCount)
setLive
in class NodeComponentRetained
void clearLive(int refCount)
clearLive
in class NodeComponentRetained
private ShaderError enableShaderProgram(Canvas3D cv, int cvRdrIndex)
private ShaderError disableShaderProgram(Canvas3D cv)
void initMirrorObject()
initMirrorObject
in class NodeComponentRetained
void updateMirrorObject(int component, java.lang.Object value)
updateMirrorObject
in class NodeComponentRetained
private void createShaderProgramData(int cvRdrIndex, long ctxTimeStamp)
private ShaderError createShaderProgram(Canvas3D cv, int cvRdrIndex)
private ShaderError linkShaderProgram(Canvas3D cv, int cvRdrIndex, ShaderRetained[] shaders)
private ShaderError bindVertexAttrName(Canvas3D cv, int cvRdrIndex, java.lang.String attrName, int attrIndex)
private void lookupVertexAttrNames(Canvas3D cv, int cvRdrIndex, java.lang.String[] attrNames)
private void lookupShaderAttrNames(Canvas3D cv, int cvRdrIndex, java.lang.String[] attrNames)
private ShaderProgramRetained.ShaderProgramData getShaderProgramData(int cvRdrIndex)
private ShaderError createShader(Canvas3D cv, int cvRdrIndex, ShaderRetained shader)
private ShaderError compileShader(Canvas3D cv, int cvRdrIndex, ShaderRetained shader)
void notifyErrorListeners(Canvas3D cv, ShaderError err)
private boolean verifyShaderProgramSupported(Canvas3D cv)
void destroyShader(Canvas3D cv, int cvRdrIndex, ShaderRetained shader)
void destroyShaderProgram(Canvas3D cv, int cvRdrIndex)
void updateNative(Canvas3D cv, boolean enable)
ShaderError setUniformAttrValue(Context ctx, ShaderProgramId shaderProgramId, ShaderAttrLoc loc, ShaderAttributeValueRetained sav)
ShaderError setUniformAttrArray(Context ctx, ShaderProgramId shaderProgramId, ShaderAttrLoc loc, ShaderAttributeArrayRetained saa)
void setShaderAttributes(Canvas3D cv, ShaderAttributeSetRetained attributeSet)
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |