com.io7m.r2.core.shaders.types

## Interface R2ShaderLightVolumeSingleUsableType<M extends R2LightVolumeSingleReadableType>

- Type Parameters:
    `M` - The type of shader parameters
  All Superinterfaces:
    com.io7m.jcanephora.core.JCGLResourceUsableType, R2ShaderLightSingleUsableType<M>, R2ShaderUsableType<M>
  All Known Subinterfaces:
    R2ShaderLightProjectiveType<M>, R2ShaderLightProjectiveUsableType<M>, R2ShaderLightProjectiveWithShadowType<M>, R2ShaderLightProjectiveWithShadowUsableType<M>, R2ShaderLightVolumeSingleType<M>
  All Known Implementing Classes:
    R2DebugShaderLightSphericalAttenuationSingle, R2DebugShaderLightSphericalConstantSingle, R2LightShaderProjectiveLambertBlinnPhongShadowVarianceSingle, R2LightShaderProjectiveLambertBlinnPhongSingle, R2LightShaderProjectiveLambertShadowVarianceSingle, R2LightShaderProjectiveLambertSingle, R2LightShaderSphericalLambertBlinnPhongSingle, R2LightShaderSphericalLambertPhongSingle, R2LightShaderSphericalLambertSingle, R2ShaderLightProjectiveVerifier, R2ShaderLightProjectiveWithShadowVerifier, R2ShaderLightVolumeSingleVerifier

      public interface R2ShaderLightVolumeSingleUsableType<M extends R2LightVolumeSingleReadableType>
      extends R2ShaderLightSingleUsableType<M>

  The type of usable single-instance volume light shaders.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `onReceiveVolumeLightTransform(com.io7m.jcanephora.core.api.JCGLInterfaceGL33Type g, R2MatricesVolumeLightValuesType m)` Set shader values that are derived from the current volume light transform.

    - ### Methods inherited from interface com.io7m.r2.core.shaders.types.R2ShaderLightSingleUsableType

      `onReceiveBoundGeometryBufferTextures, onReceiveValues`

    - ### Methods inherited from interface com.io7m.r2.core.shaders.types.R2ShaderUsableType

      `onActivate, onDeactivate, onValidate, shaderID, shaderParametersType, shaderProgram`

    - ### Methods inherited from interface com.io7m.jcanephora.core.JCGLResourceUsableType

      `isDeleted`

- - ### Method Detail

    - #### onReceiveVolumeLightTransform

          void onReceiveVolumeLightTransform(com.io7m.jcanephora.core.api.JCGLInterfaceGL33Type g,
                                             R2MatricesVolumeLightValuesType m)

      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(com.io7m.jcanephora.core.api.JCGLInterfaceGL33Type)` and before a call to `R2ShaderUsableType.onValidate()`.

      Parameters:
        `g` - An OpenGL interface
        `m` - The instance matrices

Copyright © 2017 <code@io7m.com> http://io7m.com