com.io7m.r2.core.shaders.types

## Interface R2ShaderLightProjectiveUsableType<M extends R2LightProjectiveReadableType>

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

      public interface R2ShaderLightProjectiveUsableType<M extends R2LightProjectiveReadableType>
      extends R2ShaderLightVolumeSingleUsableType<M>

  The type of usable single-instance projective light shaders.

- - ### Method Summary

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

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

      `onReceiveVolumeLightTransform`

    - ### 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

    - #### onReceiveProjectiveLight

          void onReceiveProjectiveLight(com.io7m.jcanephora.core.api.JCGLInterfaceGL33Type g,
                                        R2MatricesProjectiveLightValuesType m)

      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(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