com.io7m.r2.core

## Interface R2LightBufferUsableType

- All Superinterfaces:
    com.io7m.jcanephora.core.JCGLResourceSizedType, com.io7m.jcanephora.core.JCGLResourceUsableType, R2RenderTargetUsableType<R2LightBufferDescriptionType>
  All Known Subinterfaces:
    R2LightBufferDiffuseOnlyUsableType, R2LightBufferDiffuseSpecularUsableType, R2LightBufferSpecularOnlyUsableType, R2LightBufferType

      public interface R2LightBufferUsableType
      extends R2RenderTargetUsableType<R2LightBufferDescriptionType>

  The type of usable light buffers.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `<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`

- - ### Method Detail

    - #### matchLightBuffer

          <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

      Match on the type of projective light.
      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_diffuse_specular` - Evaluated for diffuse+specular light buffers
        `on_specular` - Evaluated for specular-only light buffers
      Returns:
        A value of type `B`
      Throws:
        `E` - If any of the given functions raise `E`
        `E extends Throwable`

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