Class SoUniformShaderParameter
- java.lang.Object
-
- com.openinventor.inventor.Inventor
-
- com.openinventor.inventor.misc.SoBase
-
- com.openinventor.inventor.fields.SoFieldContainer
-
- com.openinventor.inventor.nodes.SoNode
-
- com.openinventor.inventor.nodes.SoShaderParameter
-
- com.openinventor.inventor.nodes.SoUniformShaderParameter
-
- All Implemented Interfaces:
SafeDisposable
- Direct Known Subclasses:
SoShaderParameter1f
,SoShaderParameter1i
,SoShaderParameter2f
,SoShaderParameter2i
,SoShaderParameter3f
,SoShaderParameter3i
,SoShaderParameter4f
,SoShaderParameter4i
,SoShaderParameterArray1f
,SoShaderParameterArray1i
,SoShaderParameterArray2f
,SoShaderParameterArray2i
,SoShaderParameterArray3f
,SoShaderParameterArray3i
,SoShaderParameterArray4f
,SoShaderParameterArray4i
,SoShaderParameterMatrix
,SoShaderParameterMatrix3
,SoShaderParameterMatrixArray
,SoShaderStateMatrixParameter
public abstract class SoUniformShaderParameter extends SoShaderParameter
Abstract base class for all uniform shader parameter nodes. This is the abstract class from which all the uniform shader parameter nodes, e.g.SoShaderParameter1i
, are derived.These nodes allow users to provide uniform parameters to a given shader object, e.g.
SoFragmentShader
.Uniform shader parameter nodes are usually added to the shader object's parameter field to affect only that specific shader program. They can also be inserted in the scene graph after an
SoShaderProgram
. In this case they affect whatever shader program is in effect when a shape is rendered.Each parameter is defined by the following properties:
- name and/or identifier,
- value.
See the base class
SoShaderParameter
to get information about how to specify the name and/or identifier of a parameter.The following examples show how to set a parameter named "scale" in two different ways.
EXAMPLE In this case, a uniform parameter is added to a specific shader program:
SoShaderParameter3f parameterNode = new SoShaderParameter3f(); parameterNode.name.setValue( "scale" ); parameterNode.value.setValue(2, 2, 2); SoVertexShader vertexShader = new SoVertexShader(); vertexShader.sourceProgram.setValue( "filename.glsl" ); vertexShader.parameter.set1Value( 0, parameterNode ); // Affects this shader SoShaderProgram shaderProgram = new SoShaderProgram(); shaderProgram.shaderObject.set1Value( 0, vertexShader ); root.addChild(shaderProgram); EXAMPLE This code sets a uniform parameter with an
SoShaderParameter
included in the scene graph:SoShaderParameter3f parameterNode = new SoShaderParameter3f(); parameterNode.name.setValue( "scale" ); parameterNode.value.setValue(2, 2, 2); root.addChild( parameterNode ); // Affects all subsequent shaders SoVertexShader vertexShader = new SoVertexShader(); vertexShader.sourceProgram.setValue( "filename.glsl" ); SoShaderProgram shaderProgram = new SoShaderProgram(); shaderProgram.shaderObject.set1Value( 0, vertexShader ); root.addChild(shaderProgram); File format/default:
This is an abstract class. See the reference page of a derived class for the format and default values.
- See Also:
SoShaderParameter
,SoVertexShaderParameter
,SoShaderParameter1f
,SoShaderParameter1i
,SoShaderParameter2f
,SoShaderParameter2i
,SoShaderParameter3f
,SoShaderParameter3i
,SoShaderParameter4f
,SoShaderParameter4i
,SoShaderParameterArray1f
,SoShaderParameterArray1i
,SoShaderParameterArray2f
,SoShaderParameterArray2i
,SoShaderParameterArray3f
,SoShaderParameterArray3i
,SoShaderParameterArray4f
,SoShaderParameterArray4i
,SoShaderParameterMatrix
,SoShaderParameterMatrixArray
,SoShaderStateMatrixParameter
,SoShaderObject
,SoShaderProgram
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.openinventor.inventor.nodes.SoNode
SoNode.RenderModes
-
Nested classes/interfaces inherited from class com.openinventor.inventor.Inventor
Inventor.ConstructorCommand
-
-
Field Summary
-
Fields inherited from class com.openinventor.inventor.nodes.SoShaderParameter
identifier, name
-
Fields inherited from class com.openinventor.inventor.Inventor
VERBOSE_LEVEL, ZeroHandle
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
isEqual(SoUniformShaderParameter param)
-
Methods inherited from class com.openinventor.inventor.nodes.SoNode
affectsState, callback, copy, copy, distribute, doAction, getAlternateRep, getBoundingBox, getByName, getMatrix, getPrimitiveCount, getRenderEngineMode, getRenderUnitID, GLRender, GLRenderBelowPath, GLRenderInPath, GLRenderOffPath, grabEventsCleanup, grabEventsSetup, handleEvent, isBoundingBoxIgnoring, isOverride, pick, rayPick, search, setOverride, touch, write
-
Methods inherited from class com.openinventor.inventor.fields.SoFieldContainer
copyFieldValues, copyFieldValues, enableNotify, fieldsAreEqual, get, getAllFields, getEventIn, getEventOut, getField, getFieldName, hasDefaultValues, isNotifyEnabled, set, setToDefaults
-
Methods inherited from class com.openinventor.inventor.misc.SoBase
dispose, getName, isDisposable, isSynchronizable, setName, setSynchronizable
-
Methods inherited from class com.openinventor.inventor.Inventor
getNativeResourceHandle
-
-
-
-
Method Detail
-
isEqual
public boolean isEqual(SoUniformShaderParameter param)
-
-