com.io7m.r2.core.shaders.provided

## Class R2MaskShaderSingle

- java.lang.Object
- - com.io7m.r2.core.shaders.provided.R2AbstractShader<com.io7m.jfunctional.Unit>
  - - com.io7m.r2.core.shaders.provided.R2MaskShaderSingle

- All Implemented Interfaces:
    com.io7m.jcanephora.core.JCGLResourceUsableType, R2DeletableType, R2ShaderInstanceSingleType<com.io7m.jfunctional.Unit>, R2ShaderInstanceSingleUsableType<com.io7m.jfunctional.Unit>, R2ShaderType<com.io7m.jfunctional.Unit>, R2ShaderUsableType<com.io7m.jfunctional.Unit>

      public final class R2MaskShaderSingle
      extends R2AbstractShader<com.io7m.jfunctional.Unit>
      implements R2ShaderInstanceSingleType<com.io7m.jfunctional.Unit>

  Shader for masking single instances.

- - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static R2ShaderInstanceSingleType<com.io7m.jfunctional.Unit>` | `newShader(com.io7m.jcanephora.core.api.JCGLShadersType in_shaders, R2ShaderPreprocessingEnvironmentReadableType in_shader_env, R2IDPoolType in_pool)` Construct a new shader.
    `void` | `onReceiveInstanceTransformValues(com.io7m.jcanephora.core.api.JCGLInterfaceGL33Type g, R2MatricesInstanceSingleValuesType m)` Set shader values that are derived from the current instance transform.
    `void` | `onReceiveMaterialValues(com.io7m.jcanephora.core.api.JCGLInterfaceGL33Type g, R2ShaderParametersMaterialType<com.io7m.jfunctional.Unit> mat_parameters)` Set material values.
    `void` | `onReceiveViewValues(com.io7m.jcanephora.core.api.JCGLInterfaceGL33Type g, R2ShaderParametersViewType view_parameters)` Set shader values that are derived from the current view.
    `void` | `onValidate()` Validate the shader prior to executing a draw call.
    `Class<com.io7m.jfunctional.Unit>` | `shaderParametersType()`

    - ### Methods inherited from class com.io7m.r2.core.shaders.provided.R2AbstractShader

      `delete, isDeleted, onActivate, onDeactivate, shaderID, shaderProgram`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

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

      `delete`

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

      `onActivate, onDeactivate, shaderID, shaderProgram`

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

      `isDeleted`

- - ### Method Detail

    - #### newShader

          public static R2ShaderInstanceSingleType<com.io7m.jfunctional.Unit> newShader(com.io7m.jcanephora.core.api.JCGLShadersType in_shaders,
                                                                                        R2ShaderPreprocessingEnvironmentReadableType in_shader_env,
                                                                                        R2IDPoolType in_pool)

      Construct a new shader.
      Parameters:
        `in_shaders` - A shader interface
        `in_shader_env` - A shader preprocessing environment
        `in_pool` - The ID pool
      Returns:
        A new shader

    - #### shaderParametersType

          public Class<com.io7m.jfunctional.Unit> shaderParametersType()

      Specified by:
        `shaderParametersType` in interface `R2ShaderUsableType<com.io7m.jfunctional.Unit>`
      Returns:
        The shader parameter type

    - #### onReceiveViewValues

          public void onReceiveViewValues(com.io7m.jcanephora.core.api.JCGLInterfaceGL33Type g,
                                          R2ShaderParametersViewType view_parameters)

      Description copied from interface: `R2ShaderInstanceSingleUsableType`

      Set shader values that are derived from the current view.

      This method will be called exactly once between calls to `R2ShaderUsableType.onActivate(com.io7m.jcanephora.core.api.JCGLInterfaceGL33Type)` and `R2ShaderUsableType.onValidate()`.

      Specified by:
        `onReceiveViewValues` in interface `R2ShaderInstanceSingleUsableType<com.io7m.jfunctional.Unit>`
      Parameters:
        `g` - An OpenGL interface
        `view_parameters` - The view parameters

    - #### onValidate

          public void onValidate()
                          throws R2ExceptionShaderValidationFailed

      Description copied from interface: `R2ShaderUsableType`
      Validate the shader prior to executing a draw call. This method exists so that shader implementations can check that the caller has called all required methods before drawing.
      Specified by:
        `onValidate` in interface `R2ShaderUsableType<com.io7m.jfunctional.Unit>`
      Throws:
        `R2ExceptionShaderValidationFailed` - If validation fails

    - #### onReceiveMaterialValues

          public void onReceiveMaterialValues(com.io7m.jcanephora.core.api.JCGLInterfaceGL33Type g,
                                              R2ShaderParametersMaterialType<com.io7m.jfunctional.Unit> mat_parameters)

      Description copied from interface: `R2ShaderInstanceSingleUsableType`

      Set material values.

      This method will be called once for each group of instances that use the material `M`.

      This method will be called after a call to `R2ShaderUsableType.onActivate(com.io7m.jcanephora.core.api.JCGLInterfaceGL33Type)` and before a call to `R2ShaderUsableType.onValidate()`.

      Specified by:
        `onReceiveMaterialValues` in interface `R2ShaderInstanceSingleUsableType<com.io7m.jfunctional.Unit>`
      Parameters:
        `g` - A texture interface
        `mat_parameters` - The material parameters

    - #### onReceiveInstanceTransformValues

          public void onReceiveInstanceTransformValues(com.io7m.jcanephora.core.api.JCGLInterfaceGL33Type g,
                                                       R2MatricesInstanceSingleValuesType m)

      Description copied from interface: `R2ShaderInstanceSingleUsableType`

      Set shader values that are derived from the current instance transform.

      This method will be called exactly once for each single instance 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()`.

      Specified by:
        `onReceiveInstanceTransformValues` in interface `R2ShaderInstanceSingleUsableType<com.io7m.jfunctional.Unit>`
      Parameters:
        `g` - An OpenGL interface
        `m` - The instance matrices

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