Package org.web3d.x3d.sai.Shaders
Interface ShaderProgram
- All Superinterfaces:
X3DNode,X3DProgrammableShaderObject,X3DUrlObject
- All Known Implementing Classes:
ShaderProgramObject
public interface ShaderProgram extends X3DNode, X3DUrlObject, X3DProgrammableShaderObject
ShaderProgram can contain field declarations and a CDATA section of plain-text source code.
X3D node tooltip: (X3D version 3.1 or later) [X3DNode,X3DUrlObject,X3DProgrammableShaderObject] ShaderProgram is contained by ProgramShader and provides the source and interface to a self-contained program that occupies one part of the rendering process: either a vertex or fragment shader.
Package hint: This interface is defined by the X3D Java Language Binding Specification for the Scene Authoring Interface (SAI).
X3D node tooltip: (X3D version 3.1 or later) [X3DNode,X3DUrlObject,X3DProgrammableShaderObject] ShaderProgram is contained by ProgramShader and provides the source and interface to a self-contained program that occupies one part of the rendering process: either a vertex or fragment shader.
- Hint: ShaderProgram contains field declarations and then corresponding IS/connect statements (if any when defining inside a ProtoBody).
- Hint: insert a CDATA block to contain source code embedded within an X3D scene.
- Hint: a contained CDATA block for source code protects whitespace, line breaks, and literal characters (such as & for ampersand character, < for less-than-sign character, and > for greater-than-sign character) from unintended escape-character modifications by XML parsers.
- Warning: strict order is required for contained constructs: first field declarations (if any), then IS/connect statements (if any when defining inside a ProtoBody), and finally CDATA source-code block.
- Hint: apply containerField='watchList' when parent node is LoadSensor.
Package hint: This interface is defined by the X3D Java Language Binding Specification for the Scene Authoring Interface (SAI).
-
Method Summary
Modifier and Type Method Description X3DMetadataObjectgetMetadata()Provide X3DMetadataObject instance (using a properly typed node) from inputOutput SFNode field metadata.java.lang.StringgetType()Provide String enumeration value (baseType shaderPartTypeValues) ["VERTEX" | "FRAGMENT" | 'etc.'] from inputOutput SFString field named type.java.lang.String[]getUrl()Provide array of String results from inputOutput MFString field named url.ShaderProgramsetMetadata(X3DMetadataObject newValue)Accessor method to assign X3DMetadataObject instance (using a properly typed node) to inputOutput SFNode field metadata.ShaderProgramsetType(java.lang.String newValue)Accessor method to assign String enumeration value ("VERTEX" | "FRAGMENT") to inputOutput SFString field named type.ShaderProgramsetUrl(java.lang.String[] newValue)Accessor method to assign String array to inputOutput MFString field named url.
-
Method Details
-
getMetadata
X3DMetadataObject getMetadata()Provide X3DMetadataObject instance (using a properly typed node) from inputOutput SFNode field metadata.
Tooltip: [X3DMetadataObject] Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.- Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/core.html#Metadata
- Specified by:
getMetadatain interfaceX3DNode- Returns:
- value of metadata field
- See Also:
- X3D Scene Authoring Hints: Metadata Nodes
-
setMetadata
Accessor method to assign X3DMetadataObject instance (using a properly typed node) to inputOutput SFNode field metadata.
Tooltip: [X3DMetadataObject] Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.- Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/core.html#Metadata
- Specified by:
setMetadatain interfaceX3DNode- Parameters:
newValue- is new value for the metadata field.- Returns:
ShaderProgram- namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).- See Also:
- X3D Scene Authoring Hints: Metadata Nodes
-
getType
java.lang.String getType()Provide String enumeration value (baseType shaderPartTypeValues) ["VERTEX" | "FRAGMENT" | 'etc.'] from inputOutput SFString field named type.
Tooltip: type indicates whether this ShaderProgram is a vertex or fragment (pixel) shader.- Warning: do not wrap extra quotation marks around these SFString enumeration values, since "quotation" "marks" are only used for MFString values.
- Returns:
- value of type field
-
setType
Accessor method to assign String enumeration value ("VERTEX" | "FRAGMENT") to inputOutput SFString field named type.
Tooltip: type indicates whether this ShaderProgram is a vertex or fragment (pixel) shader.- Warning: do not wrap extra quotation marks around these SFString enumeration values, since "quotation" "marks" are only used for MFString values.
- Parameters:
newValue- is new value for the type field.- Returns:
ShaderProgram- namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
-
getUrl
java.lang.String[] getUrl()Provide array of String results from inputOutput MFString field named url.
Tooltip: Location and filename of shader. Multiple locations are more reliable, and including a Web address lets e-mail attachments work.- Hint: MFString arrays can have multiple values, so separate each individual string by quote marks "https://www.web3d.org" "https://www.web3d.org/about" "etc."
- Hint: alternative XML encoding for quotation mark " is " (which is an example of a character entity).
- Warning: strictly match directory and filename capitalization for http links! This is important for portability. Some operating systems are forgiving of capitalization mismatches, but http/https url addresses and paths in Unix-based operating systems are all case sensitive and intolerant of uppercase/lowercase mismatches.
- Hint: can replace embedded blank(s) in url queries with %20 for each blank character.
- Hint: X3D Scene Authoring Hints, urls https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#urls
- Specified by:
getUrlin interfaceX3DUrlObject- Returns:
- value of url field
-
setUrl
Accessor method to assign String array to inputOutput MFString field named url.
Tooltip: Location and filename of shader. Multiple locations are more reliable, and including a Web address lets e-mail attachments work.- Hint: MFString arrays can have multiple values, so separate each individual string by quote marks "https://www.web3d.org" "https://www.web3d.org/about" "etc."
- Hint: alternative XML encoding for quotation mark " is " (which is an example of a character entity).
- Warning: strictly match directory and filename capitalization for http links! This is important for portability. Some operating systems are forgiving of capitalization mismatches, but http/https url addresses and paths in Unix-based operating systems are all case sensitive and intolerant of uppercase/lowercase mismatches.
- Hint: can replace embedded blank(s) in url queries with %20 for each blank character.
- Hint: X3D Scene Authoring Hints, urls https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#urls
- Specified by:
setUrlin interfaceX3DUrlObject- Parameters:
newValue- is new value for the url field.- Returns:
ShaderProgram- namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
-