## Uses of Interface
com.io7m.r2.core.shaders.types.R2ShaderType

- Packages that use R2ShaderType
  Package | Description
  --- | ---
  com.io7m.r2.core.debug | Types and functions associated with debugging.
  com.io7m.r2.core.shaders.provided | Default provided shaders.
  com.io7m.r2.core.shaders.types | Shader types.
  com.io7m.r2.filters | Default provided filters.

- - ### Uses of R2ShaderType in com.io7m.r2.core.debug

    Classes in com.io7m.r2.core.debug that implement R2ShaderType
    Modifier and Type | Class and Description
    --- | ---
    `class` | `R2DebugShaderLightDirectionalConstantSingle` Directional light shader that ignores the surface and applies a constant color.
    `class` | `R2DebugShaderLightSphericalAttenuationSingle` Spherical light shader that mostly ignores the surface and applies the light color multiplied by the light attenuation over distance.
    `class` | `R2DebugShaderLightSphericalConstantSingle` Spherical light shader that ignores the surface and applies a constant color.

  - ### Uses of R2ShaderType in com.io7m.r2.core.shaders.provided

    Classes in com.io7m.r2.core.shaders.provided that implement R2ShaderType
    Modifier and Type | Class and Description
    --- | ---
    `class` | `R2AbstractShader<M>` An abstract shader implementation.
    `class` | `R2DepthShaderBasicBatched` Basic depth shader for single instances.
    `class` | `R2DepthShaderBasicSingle` Basic depth shader for single instances.
    `class` | `R2DepthShaderBasicStippledSingle` Basic depth shader for single instances.
    `class` | `R2LightShaderAmbientSingle` Ambient light shader for single lights.
    `class` | `R2LightShaderDirectionalSpecularSingle` Directional light shader for single lights.
    `class` | `R2LightShaderProjectiveLambertBlinnPhongShadowVarianceSingle` Projective light shader for single lights.
    `class` | `R2LightShaderProjectiveLambertBlinnPhongSingle` Projective light shader for single lights.
    `class` | `R2LightShaderProjectiveLambertShadowVarianceSingle` Projective light shader for single lights.
    `class` | `R2LightShaderProjectiveLambertSingle` Projective light shader for single lights.
    `class` | `R2LightShaderSphericalLambertBlinnPhongSingle` Spherical light shader for single lights.
    `class` | `R2LightShaderSphericalLambertPhongSingle` Spherical light shader for single lights.
    `class` | `R2LightShaderSphericalLambertSingle` Spherical light shader for single lights.
    `class` | `R2MaskShaderBatched` Shader for masking single instances.
    `class` | `R2MaskShaderSingle` Shader for masking single instances.
    `class` | `R2RefractionMaskedDeltaShaderBatched` Shader for refracting batched instances.
    `class` | `R2RefractionMaskedDeltaShaderBillboarded` Shader for refracting billboarded instances.
    `class` | `R2RefractionMaskedDeltaShaderSingle` Shader for refracting single instances.
    `class` | `R2ShaderDebugColorVerticesWorldPosition` Debug visualization shader for printing a set of line segments specified in world space.
    `class` | `R2ShaderDebugVisualBatched` Debug visualization shader for batched instances.
    `class` | `R2ShaderDebugVisualBillboarded` Debug visualization shader for billboarded instances.
    `class` | `R2ShaderDebugVisualScreen` Debug visualization shader for single instances.
    `class` | `R2ShaderDebugVisualSingle` Debug visualization shader for single instances.
    `class` | `R2ShaderLogDepthOnlySingle` A shader that does not output any color data, but does write a logarithmic depth value.
    `class` | `R2StencilShaderScreen` A stencil-only shader implementation.
    `class` | `R2StencilShaderSingle` A stencil-only shader implementation.
    `class` | `R2SurfaceShaderBasicBatched` Basic deferred surface shader for batched instances.
    `class` | `R2SurfaceShaderBasicBillboarded` Basic deferred surface shader for billboarded instances.
    `class` | `R2SurfaceShaderBasicReflectiveSingle` Basic deferred surface shader for single instances, with pseudo-reflectivity provided by an environment map.
    `class` | `R2SurfaceShaderBasicSingle` Basic deferred surface shader for single instances.
    `class` | `R2SurfaceShaderBasicStippledSingle` Basic deferred surface shader for single instances with alpha stippling.
    `class` | `R2TranslucentShaderBasicPremultipliedBatched` Simple translucent shader for batched instances.
    `class` | `R2TranslucentShaderBasicPremultipliedBillboarded` Simple translucent shader for billboarded instances.
    `class` | `R2TranslucentShaderBasicPremultipliedSingle` Simple translucent shader for single instances.

  - ### Uses of R2ShaderType in com.io7m.r2.core.shaders.types

    Subinterfaces of R2ShaderType in com.io7m.r2.core.shaders.types
    Modifier and Type | Interface and Description
    --- | ---
    `interface` | `R2ShaderDepthBatchedType<M>` The type of shaders for rendering the depths of batched instances.
    `interface` | `R2ShaderDepthSingleType<M>` The type of shaders for rendering the depths of single instances.
    `interface` | `R2ShaderFilterType<M>` The type of shaders for implementing full-screen filters.
    `interface` | `R2ShaderInstanceBatchedType<M>` The type of shaders for rendering the surfaces of batched instances into a geometry buffer.
    `interface` | `R2ShaderInstanceBillboardedType<M>` The type of shaders for rendering the surfaces of billboarded instances into a geometry buffer.
    `interface` | `R2ShaderInstanceSingleScreenType<M>` The type of shaders for rendering the surfaces of single full-screen instances.
    `interface` | `R2ShaderInstanceSingleType<M>` The type of shaders for rendering the surfaces of single instances.
    `interface` | `R2ShaderLightProjectiveType<M extends R2LightProjectiveReadableType>` The type of single-instance projective light shaders.
    `interface` | `R2ShaderLightProjectiveWithShadowType<M extends R2LightProjectiveWithShadowReadableType>` The type of single-instance projective light shaders with shadows.
    `interface` | `R2ShaderLightScreenSingleType<M extends R2LightSingleReadableType>` The type of single-instance light shaders that operate on full-screen quads.
    `interface` | `R2ShaderLightSingleType<M extends R2LightSingleReadableType>` The type of single-instance light shaders.
    `interface` | `R2ShaderLightVolumeSingleType<M extends R2LightVolumeSingleReadableType>` The type of single-instance light shaders.
    `interface` | `R2ShaderScreenType<M>` The type of shaders for rendering screen-sized quads.
    `interface` | `R2ShaderTranslucentInstanceBatchedType<M>` The type of shaders for rendering the surfaces of translucent batched instances.
    `interface` | `R2ShaderTranslucentInstanceBillboardedType<M>` The type of shaders for rendering the surfaces of translucent billboarded instances.
    `interface` | `R2ShaderTranslucentInstanceSingleType<M>` The type of shaders for rendering the surfaces of translucent single instances.
    `interface` | `R2ShaderTranslucentType<M>` The type of translucent shaders.

    Classes in com.io7m.r2.core.shaders.types that implement R2ShaderType
    Modifier and Type | Class and Description
    --- | ---
    `class` | `R2ShaderDepthBatchedVerifier<M>` A verifier for batched instance shaders; a type that verifies that a renderer has called all of the required methods in the correct order.
    `class` | `R2ShaderDepthSingleVerifier<M>` A delegating verifier for single-instance depth shaders; a type that verifies that a renderer has called all of the required methods in the correct order.
    `class` | `R2ShaderFilterVerifier<M>` A verifier for filter shaders; a type that verifies that a renderer has called all of the required methods in the correct order.
    `class` | `R2ShaderInstanceBatchedVerifier<M>` A verifier for batched instance shaders; a type that verifies that a renderer has called all of the required methods in the correct order.
    `class` | `R2ShaderInstanceBillboardedVerifier<M>` A verifier for billboarded instance shaders; a type that verifies that a renderer has called all of the required methods in the correct order.
    `class` | `R2ShaderInstanceSingleVerifier<M>` A delegating verifier for single-instance shaders; a type that verifies that a renderer has called all of the required methods in the correct order.
    `class` | `R2ShaderLightProjectiveVerifier<M extends R2LightProjectiveReadableType>` A verifier for projective light shaders; a type that verifies that a renderer has called all of the required methods in the correct order.
    `class` | `R2ShaderLightProjectiveWithShadowVerifier<M extends R2LightProjectiveWithShadowReadableType>` A verifier for projective light shaders; a type that verifies that a renderer has called all of the required methods in the correct order.
    `class` | `R2ShaderLightScreenSingleVerifier<M extends R2LightScreenSingleType>` A verifier for single-instance volume light shaders; a type that verifies that a renderer has called all of the required methods in the correct order.
    `class` | `R2ShaderLightVolumeSingleVerifier<M extends R2LightVolumeSingleReadableType>` A verifier for single-instance volume light shaders; a type that verifies that a renderer has called all of the required methods in the correct order.
    `class` | `R2ShaderTranslucentInstanceBatchedVerifier<M>` A verifier for batched translucent instance shaders; a type that verifies that a renderer has called all of the required methods in the correct order.
    `class` | `R2ShaderTranslucentInstanceBillboardedVerifier<M>` A verifier for billboarded translucent instance shaders; a type that verifies that a renderer has called all of the required methods in the correct order.
    `class` | `R2ShaderTranslucentInstanceSingleVerifier<M>` A delegating verifier for translucent single-instance shaders; a type that verifies that a renderer has called all of the required methods in the correct order.

  - ### Uses of R2ShaderType in com.io7m.r2.filters

    Classes in com.io7m.r2.filters that implement R2ShaderType
    Modifier and Type | Class and Description
    --- | ---
    `class` | `R2ShaderFilterBilateralBlurDepthAwareHorizontal4f` A bilateral depth-aware blur horizontal RGBA shader.
    `class` | `R2ShaderFilterBilateralBlurDepthAwareVertical4f` A bilateral depth-aware blur vertical RGBA shader.
    `class` | `R2ShaderFilterBoxBlurHorizontal4f` A horizontal RGBA box blur shader.
    `class` | `R2ShaderFilterBoxBlurVertical4f` A vertical RGBA box blur shader.
    `class` | `R2ShaderFilterDebugEyePosition` A shader that recovers the eye-space position of the g-buffer surface.
    `class` | `R2ShaderFilterDebugEyeZ` A shader that recovers the eye-space Z value of the g-buffer surface.
    `class` | `R2ShaderFilterEmission` An emission shader that copies the emissive parts of an image.
    `class` | `R2ShaderFilterFogDepth` A shader that renders fog based on depth.
    `class` | `R2ShaderFilterFogDepthLinear` A shader that renders linear fog based on depth.
    `class` | `R2ShaderFilterFogDepthQuadratic` A shader that renders quadratic fog based on depth.
    `class` | `R2ShaderFilterFogDepthQuadraticInverse` A shader that renders inverse quadratic fog based on depth.
    `class` | `R2ShaderFilterFXAAA` An FXAA shader.
    `class` | `R2ShaderFilterLightApplicator` A light applicator shader.
    `class` | `R2ShaderFilterOcclusionApplicator` An occlusion applicator shader.
    `class` | `R2ShaderFilterTextureShow` An image sink shader that copies a texture to the first output.
    `class` | `R2ShaderSSAO` An SSAO shader.

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