com.io7m.r2.core

## Interface R2LightBufferDiffuseSpecularUsableType

- All Superinterfaces:
    com.io7m.jcanephora.core.JCGLResourceSizedType, com.io7m.jcanephora.core.JCGLResourceUsableType, R2LightBufferUsableType, R2LightBufferWithDiffuseUsableType, R2LightBufferWithSpecularUsableType, R2RenderTargetUsableType<R2LightBufferDescriptionType>

      public interface R2LightBufferDiffuseSpecularUsableType
      extends R2LightBufferUsableType, R2LightBufferWithDiffuseUsableType, R2LightBufferWithSpecularUsableType

  The type of usable diffuse+specular light buffers.

- - ### Method Summary

    All Methods Instance Methods Default Methods
    Modifier and Type | Method and Description
    --- | ---
    `default <A,B,E extends Throwable> B` | `matchLightBuffer(A context, com.io7m.jfunctional.PartialBiFunctionType<A,R2LightBufferDiffuseOnlyUsableType,B,E> on_diffuse, com.io7m.jfunctional.PartialBiFunctionType<A,R2LightBufferSpecularOnlyUsableType,B,E> on_specular, com.io7m.jfunctional.PartialBiFunctionType<A,R2LightBufferDiffuseSpecularUsableType,B,E> on_diffuse_specular)` Match on the type of projective light.

    - ### Methods inherited from interface com.io7m.r2.core.R2RenderTargetUsableType

      `area, clearBoundPrimaryFramebuffer, description, primaryFramebuffer`

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

      `isDeleted`

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

      `getRange`

    - ### Methods inherited from interface com.io7m.r2.core.R2LightBufferWithDiffuseUsableType

      `diffuseTexture`

    - ### Methods inherited from interface com.io7m.r2.core.R2LightBufferWithSpecularUsableType

      `specularTexture`

- - ### Method Detail

    - #### matchLightBuffer

          default <A,B,E extends Throwable> B matchLightBuffer(A context,
                                                               com.io7m.jfunctional.PartialBiFunctionType<A,R2LightBufferDiffuseOnlyUsableType,B,E> on_diffuse,
                                                               com.io7m.jfunctional.PartialBiFunctionType<A,R2LightBufferSpecularOnlyUsableType,B,E> on_specular,
                                                               com.io7m.jfunctional.PartialBiFunctionType<A,R2LightBufferDiffuseSpecularUsableType,B,E> on_diffuse_specular)
                                                        throws E extends Throwable

      Description copied from interface: `R2LightBufferUsableType`
      Match on the type of projective light.
      Specified by:
        `matchLightBuffer` in interface `R2LightBufferUsableType`
      Type Parameters:
        `A` - The type of context values
        `B` - The type of returned values
        `E` - The type of raised exceptions
      Parameters:
        `context` - A context value
        `on_diffuse` - Evaluated for diffuse-only light buffers
        `on_specular` - Evaluated for specular-only light buffers
        `on_diffuse_specular` - Evaluated for diffuse+specular light buffers
      Returns:
        A value of type `B`
      Throws:
        `E` - If any of the given functions raise `E`
        `E extends Throwable`

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