# Class SourceCodeShader

java.lang.Object
javax.media.j3d.SceneGraphObject
javax.media.j3d.NodeComponent
javax.media.j3d.Shader
javax.media.j3d.SourceCodeShader

public class SourceCodeShader extends Shader
The SourceCodeShader object is a shader that is defined using text-based source code. It is used to define the source code for both vertex and fragment shaders. The currently supported shading languages are Cg and GLSL.

Since:
  Java 3D 1.4
See Also:
  - `ShaderProgram`

## Field Summary

### Fields inherited from class Shader

`SHADER_TYPE_FRAGMENT, SHADER_TYPE_VERTEX, SHADING_LANGUAGE_CG, SHADING_LANGUAGE_GLSL`

## Constructor Summary

Constructors
Constructor
Description
`SourceCodeShader(int shadingLanguage, int shaderType, String shaderSource)`
Constructs a new shader object of the specified shading language and shader type from the specified source string.

## Method Summary

Modifier and Type
Method
Description
`NodeComponent`
`cloneNodeComponent()`
Deprecated.
replaced with cloneNodeComponent(boolean forceDuplicate)
`String`
`getShaderSource()`
Retrieves the shader source string from this shader object.

### Methods inherited from class Shader

`getShaderType, getShadingLanguage`

### Methods inherited from class NodeComponent

`cloneNodeComponent, duplicateNodeComponent, duplicateNodeComponent, getDuplicateOnCloneTree, setDuplicateOnCloneTree`

### Methods inherited from class SceneGraphObject

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

### Methods inherited from class Object

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

## Constructor Details

### SourceCodeShader

public SourceCodeShader(int shadingLanguage, int shaderType, String shaderSource)
Constructs a new shader object of the specified shading language and shader type from the specified source string.

Parameters:
  `shadingLanguage` - the specified shading language, one of: `SHADING_LANGUAGE_GLSL` or `SHADING_LANGUAGE_CG`.
  `shaderType` - the shader type, one of: `SHADER_TYPE_VERTEX` or `SHADER_TYPE_FRAGMENT`.
  `shaderSource` - the shader source code
Throws:
  `NullPointerException` - if shaderSource is null.

## Method Details

### getShaderSource

public String getShaderSource()
Retrieves the shader source string from this shader object.

Returns:
  the shader source string.

### cloneNodeComponent

public NodeComponent cloneNodeComponent()
Deprecated.
replaced with cloneNodeComponent(boolean forceDuplicate)

Overrides:
  `cloneNodeComponent` in class `NodeComponent`