M
- The type of shader parameterspublic abstract class R2AbstractLightProjectiveWithShadowShader<M extends R2LightProjectiveWithShadowReadableType> extends R2AbstractShader<R2AbstractLightProjectiveWithShadowShader.State,M> implements R2ShaderLightProjectiveWithShadowType<M>
Modifier and Type | Class and Description |
---|---|
protected static class |
R2AbstractLightProjectiveWithShadowShader.State |
Modifier | Constructor and Description |
---|---|
protected |
R2AbstractLightProjectiveWithShadowShader(com.io7m.jcanephora.core.api.JCGLShadersType in_shaders,
R2ShaderPreprocessingEnvironmentReadableType in_shader_env,
R2IDPoolType in_pool,
String in_name,
String in_vertex,
Optional<String> in_geometry,
String in_fragment,
R2ShaderStateChecking in_check) |
Modifier and Type | Method and Description |
---|---|
protected abstract void |
onActualReceiveBoundGeometryBufferTextures(com.io7m.jcanephora.core.api.JCGLInterfaceGL33Type g,
R2GeometryBufferUsableType gbuffer,
com.io7m.jcanephora.core.JCGLTextureUnitType unit_albedo,
com.io7m.jcanephora.core.JCGLTextureUnitType unit_specular,
com.io7m.jcanephora.core.JCGLTextureUnitType unit_depth,
com.io7m.jcanephora.core.JCGLTextureUnitType unit_normals) |
protected abstract void |
onActualReceiveProjectiveLight(com.io7m.jcanephora.core.api.JCGLInterfaceGL33Type g,
R2MatricesProjectiveLightValuesType m) |
protected abstract void |
onActualReceiveShadowMap(com.io7m.jcanephora.core.api.JCGLInterfaceGL33Type g,
com.io7m.jcanephora.texture.unit_allocator.JCGLTextureUnitContextMutableType tc,
R2Texture2DUsableType map) |
protected abstract void |
onActualReceiveValues(com.io7m.jcanephora.core.api.JCGLInterfaceGL33Type g,
R2ShaderParametersLightType<M> light_parameters) |
protected abstract void |
onActualReceiveVolumeLightTransform(com.io7m.jcanephora.core.api.JCGLInterfaceGL33Type g,
R2MatricesVolumeLightValuesType m) |
protected void |
onCheckActivated() |
protected void |
onCheckDeactivated() |
protected com.io7m.jfsm.core.FSMEnumMutable<R2AbstractLightProjectiveWithShadowShader.State> |
onCheckGetFSM() |
protected void |
onCheckValidated() |
void |
onReceiveBoundGeometryBufferTextures(com.io7m.jcanephora.core.api.JCGLInterfaceGL33Type g,
R2GeometryBufferUsableType gbuffer,
com.io7m.jcanephora.core.JCGLTextureUnitType unit_albedo,
com.io7m.jcanephora.core.JCGLTextureUnitType unit_specular,
com.io7m.jcanephora.core.JCGLTextureUnitType unit_depth,
com.io7m.jcanephora.core.JCGLTextureUnitType unit_normals)
Set the bound geometry buffer textures for the current shader.
|
void |
onReceiveProjectiveLight(com.io7m.jcanephora.core.api.JCGLInterfaceGL33Type g,
R2MatricesProjectiveLightValuesType m)
Set shader values that are derived from the current projective
light.
|
void |
onReceiveShadowMap(com.io7m.jcanephora.core.api.JCGLInterfaceGL33Type g,
com.io7m.jcanephora.texture.unit_allocator.JCGLTextureUnitContextMutableType tc,
R2Texture2DUsableType map)
Set values from the given shadow map context.
|
void |
onReceiveValues(com.io7m.jcanephora.core.api.JCGLInterfaceGL33Type g,
R2ShaderParametersLightType<M> light_parameters)
Set light values.
|
void |
onReceiveVolumeLightTransform(com.io7m.jcanephora.core.api.JCGLInterfaceGL33Type g,
R2MatricesVolumeLightValuesType m)
Set shader values that are derived from the current volume light
transform.
|
delete, environment, isDeleted, onActivate, onDeactivate, onValidate, shaderID, shaderProgram
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
environment, onActivate, onDeactivate, onValidate, shaderID, shaderParametersType, shaderProgram
delete, wrap
protected R2AbstractLightProjectiveWithShadowShader(com.io7m.jcanephora.core.api.JCGLShadersType in_shaders, R2ShaderPreprocessingEnvironmentReadableType in_shader_env, R2IDPoolType in_pool, String in_name, String in_vertex, Optional<String> in_geometry, String in_fragment, R2ShaderStateChecking in_check) throws R2ExceptionShaderPreprocessingFailed
public final void onReceiveShadowMap(com.io7m.jcanephora.core.api.JCGLInterfaceGL33Type g, com.io7m.jcanephora.texture.unit_allocator.JCGLTextureUnitContextMutableType tc, R2Texture2DUsableType map)
R2ShaderLightProjectiveWithShadowUsableType
Set values from the given shadow map context.
This method will be called once for each projective light that uses the current shader.
This method will be called after a call to R2ShaderUsableType.onActivate(JCGLInterfaceGL33Type)
and before a call to R2ShaderUsableType.onValidate()
.
onReceiveShadowMap
in interface R2ShaderLightProjectiveWithShadowUsableType<M extends R2LightProjectiveWithShadowReadableType>
g
- An OpenGL interfacetc
- A texture unit contextmap
- A rendered shadow mappublic final void onReceiveProjectiveLight(com.io7m.jcanephora.core.api.JCGLInterfaceGL33Type g, R2MatricesProjectiveLightValuesType m)
R2ShaderLightProjectiveUsableType
Set shader values that are derived from the current projective light.
This method will be called once for each projective light that uses the current shader.
This method will be called after a call to R2ShaderUsableType.onActivate(JCGLInterfaceGL33Type)
and before a call to R2ShaderUsableType.onValidate()
.
onReceiveProjectiveLight
in interface R2ShaderLightProjectiveUsableType<M extends R2LightProjectiveWithShadowReadableType>
g
- An OpenGL interfacem
- The instance matricesprotected abstract void onActualReceiveBoundGeometryBufferTextures(com.io7m.jcanephora.core.api.JCGLInterfaceGL33Type g, R2GeometryBufferUsableType gbuffer, com.io7m.jcanephora.core.JCGLTextureUnitType unit_albedo, com.io7m.jcanephora.core.JCGLTextureUnitType unit_specular, com.io7m.jcanephora.core.JCGLTextureUnitType unit_depth, com.io7m.jcanephora.core.JCGLTextureUnitType unit_normals)
protected abstract void onActualReceiveValues(com.io7m.jcanephora.core.api.JCGLInterfaceGL33Type g, R2ShaderParametersLightType<M> light_parameters)
protected abstract void onActualReceiveVolumeLightTransform(com.io7m.jcanephora.core.api.JCGLInterfaceGL33Type g, R2MatricesVolumeLightValuesType m)
protected abstract void onActualReceiveProjectiveLight(com.io7m.jcanephora.core.api.JCGLInterfaceGL33Type g, R2MatricesProjectiveLightValuesType m)
protected abstract void onActualReceiveShadowMap(com.io7m.jcanephora.core.api.JCGLInterfaceGL33Type g, com.io7m.jcanephora.texture.unit_allocator.JCGLTextureUnitContextMutableType tc, R2Texture2DUsableType map)
public final void onReceiveVolumeLightTransform(com.io7m.jcanephora.core.api.JCGLInterfaceGL33Type g, R2MatricesVolumeLightValuesType m)
R2ShaderLightVolumeSingleUsableType
Set shader values that are derived from the current volume light transform.
This method will be called exactly once for each light that uses the shader.
This method will be called after a call to R2ShaderUsableType.onActivate(JCGLInterfaceGL33Type)
and before a call to R2ShaderUsableType.onValidate()
.
onReceiveVolumeLightTransform
in interface R2ShaderLightVolumeSingleUsableType<M extends R2LightProjectiveWithShadowReadableType>
g
- An OpenGL interfacem
- The instance matricespublic final void onReceiveBoundGeometryBufferTextures(com.io7m.jcanephora.core.api.JCGLInterfaceGL33Type g, R2GeometryBufferUsableType gbuffer, com.io7m.jcanephora.core.JCGLTextureUnitType unit_albedo, com.io7m.jcanephora.core.JCGLTextureUnitType unit_specular, com.io7m.jcanephora.core.JCGLTextureUnitType unit_depth, com.io7m.jcanephora.core.JCGLTextureUnitType unit_normals)
R2ShaderLightSingleUsableType
Set the bound geometry buffer textures for the current shader.
This method will be called exactly once between calls to R2ShaderUsableType.onActivate(JCGLInterfaceGL33Type)
and R2ShaderUsableType.onValidate()
.
onReceiveBoundGeometryBufferTextures
in interface R2ShaderLightSingleUsableType<M extends R2LightProjectiveWithShadowReadableType>
g
- An OpenGL interfacegbuffer
- The geometry bufferunit_albedo
- The texture unit to which the geometry buffer's
albedo/emissive texture is boundunit_specular
- The texture unit to which the geometry buffer's
specular texture is boundunit_depth
- The texture unit to which the geometry buffer's
depth/stencil texture is boundunit_normals
- The texture unit to which the geometry buffer's
normalpublic final void onReceiveValues(com.io7m.jcanephora.core.api.JCGLInterfaceGL33Type g, R2ShaderParametersLightType<M> light_parameters)
R2ShaderLightSingleUsableType
Set light values.
This method will be called once for each light that uses the current shader.
This method will be called after a call to R2ShaderUsableType.onActivate(JCGLInterfaceGL33Type)
and before a call to R2ShaderUsableType.onValidate()
.
onReceiveValues
in interface R2ShaderLightSingleUsableType<M extends R2LightProjectiveWithShadowReadableType>
g
- An OpenGL interfacelight_parameters
- The light parametersprotected final com.io7m.jfsm.core.FSMEnumMutable<R2AbstractLightProjectiveWithShadowShader.State> onCheckGetFSM()
onCheckGetFSM
in class R2AbstractShader<R2AbstractLightProjectiveWithShadowShader.State,M extends R2LightProjectiveWithShadowReadableType>
protected final void onCheckActivated()
onCheckActivated
in class R2AbstractShader<R2AbstractLightProjectiveWithShadowShader.State,M extends R2LightProjectiveWithShadowReadableType>
protected final void onCheckDeactivated()
onCheckDeactivated
in class R2AbstractShader<R2AbstractLightProjectiveWithShadowShader.State,M extends R2LightProjectiveWithShadowReadableType>
protected final void onCheckValidated()
onCheckValidated
in class R2AbstractShader<R2AbstractLightProjectiveWithShadowShader.State,M extends R2LightProjectiveWithShadowReadableType>
Copyright © 2017 <code@io7m.com> http://io7m.com