com.io7m.r2.core.shaders.provided

## Class R2SurfaceShaderBasicBatched

- java.lang.Object
- - com.io7m.r2.core.shaders.provided.R2AbstractShader<R2SurfaceShaderBasicParameters>
  - - com.io7m.r2.core.shaders.provided.R2SurfaceShaderBasicBatched

- All Implemented Interfaces:
    com.io7m.jcanephora.core.JCGLResourceUsableType, R2DeletableType, R2ShaderInstanceBatchedType<R2SurfaceShaderBasicParameters>, R2ShaderInstanceBatchedUsableType<R2SurfaceShaderBasicParameters>, R2ShaderType<R2SurfaceShaderBasicParameters>, R2ShaderUsableType<R2SurfaceShaderBasicParameters>

      public final class R2SurfaceShaderBasicBatched
      extends R2AbstractShader<R2SurfaceShaderBasicParameters>
      implements R2ShaderInstanceBatchedType<R2SurfaceShaderBasicParameters>

  Basic deferred surface shader for batched instances.

- - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static R2ShaderInstanceBatchedType<R2SurfaceShaderBasicParameters>` | `newShader(com.io7m.jcanephora.core.api.JCGLShadersType in_shaders, R2ShaderPreprocessingEnvironmentReadableType in_shader_env, R2IDPoolType in_pool)` Construct a new shader.
    `void` | `onReceiveMaterialValues(com.io7m.jcanephora.core.api.JCGLInterfaceGL33Type g, R2ShaderParametersMaterialType<R2SurfaceShaderBasicParameters> 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<R2SurfaceShaderBasicParameters>` | `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 R2ShaderInstanceBatchedType<R2SurfaceShaderBasicParameters> 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<R2SurfaceShaderBasicParameters> shaderParametersType()

      Specified by:
        `shaderParametersType` in interface `R2ShaderUsableType<R2SurfaceShaderBasicParameters>`
      Returns:
        The shader parameter type

    - #### 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<R2SurfaceShaderBasicParameters>`
      Throws:
        `R2ExceptionShaderValidationFailed` - If validation fails

    - #### onReceiveViewValues

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

      Description copied from interface: `R2ShaderInstanceBatchedUsableType`

      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 `R2ShaderInstanceBatchedUsableType<R2SurfaceShaderBasicParameters>`
      Parameters:
        `g` - An OpenGL interface
        `view_parameters` - The view parameters

    - #### onReceiveMaterialValues

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

      Description copied from interface: `R2ShaderInstanceBatchedUsableType`

      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 `R2ShaderInstanceBatchedUsableType<R2SurfaceShaderBasicParameters>`
      Parameters:
        `g` - A texture interface
        `mat_parameters` - The material parameters

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