Class InstancedRenderSystem

All Implemented Interfaces:
com.badlogic.gdx.utils.Disposable, IObserver, IRenderSystem, Comparable<IRenderSystem>
Direct Known Subclasses:
ParticleSetInstancedRenderer, StarSetInstancedRenderer, VariableSetInstancedRenderer

public abstract class InstancedRenderSystem extends ImmediateModeRenderSystem implements IObserver
  • Field Details Link icon

  • Constructor Details Link icon

  • Method Details Link icon

    • initVertices Link icon

      protected void initVertices()
      Specified by:
      initVertices in class ImmediateModeRenderSystem
    • isWireframe Link icon

      public boolean isWireframe(int primitive)
    • setModel Link icon

      protected void setModel(int offset, InstancedRenderSystem.InstancedModel model)
    • getModel Link icon

      protected InstancedRenderSystem.InstancedModel getModel(ParticleSet set, int offset)
    • getModel Link icon

      protected InstancedRenderSystem.InstancedModel getModel(IntModel modelFile, String modelType, Map<String,Object> modelParams, int primitive, int offset)
    • addAttributesDivisor0 Link icon

      protected void addAttributesDivisor0(com.badlogic.gdx.utils.Array<com.badlogic.gdx.graphics.VertexAttribute> attributes, int posArraySize, boolean useNormals, boolean useTexCoords)
      Adds the required vertex attributes for this renderer to the given list. These attributes are added only once for all instances (divisor=0)
      Parameters:
      attributes - The list of attributes with divisor=0
      posArraySize - Size of the position array (2 or 3).
      useNormals - Add normal attributes as a vector-3.
      useTexCoords - Add texture coordinates attribute as a vector-2.
    • addAttributesDivisor1 Link icon

      protected abstract void addAttributesDivisor1(com.badlogic.gdx.utils.Array<com.badlogic.gdx.graphics.VertexAttribute> attributes, int primitive)
      Adds the required vertex attributes for this renderer to the given list. These attributes are added for every instance (divisor=1)
      Parameters:
      attributes - The list of attributes with divisor=1
      primitive - The rendering primitive.
    • buildAttributesDivisor0 Link icon

      protected com.badlogic.gdx.graphics.VertexAttribute[] buildAttributesDivisor0(int posArraySize, boolean useNormals, boolean useTexCoords)
      Builds the vertex attributes with divisor=0 array and returns it. The content of divisor-0 attributes is updated in each iteration of the vertex shader.
      Parameters:
      posArraySize - Size of the position array (2 or 3).
      useNormals - Add normal attributes as a vector-3.
      useTexCoords - Add texture coordinates attribute as a vector-2.
      Returns:
      The vertex attributes array
    • buildAttributesDivisor1 Link icon

      protected com.badlogic.gdx.graphics.VertexAttribute[] buildAttributesDivisor1(int primitive)
      Builds the vertex attributes with divisor=1 array and returns it The content of divisor-1 attributes is updated for each instance.
      Parameters:
      primitive - The rendering primitive.
      Returns:
      The vertex attributes array.
    • offsets0 Link icon

      protected abstract void offsets0(ImmediateModeRenderSystem.MeshData curr, InstancedRenderSystem.InstancedModel model)
      Computes the offset for each vertex attribute. The offsets will be used later in the render stage.
      Parameters:
      curr - The current mesh data.
      model - The instanced model.
    • offsets1 Link icon

      protected abstract void offsets1(ImmediateModeRenderSystem.MeshData curr, InstancedRenderSystem.InstancedModel model)
      Computes the offset for each vertex attribute in the instanced array. The offsets will be used later in the render stage.
      Parameters:
      curr - The current mesh data.
      model - The instanced model.
    • addMeshData Link icon

      protected int addMeshData(InstancedRenderSystem.InstancedModel model, int maxVerts, int maxInstances, int maxIndices, String modelFile, String modelType, int primitive)
      Adds a new mesh data to the meshes list and increases the mesh data index.
      Parameters:
      model - The instanced model instance.
      maxVerts - The max number of vertices the divisor 0 mesh data can hold.
      maxInstances - The max number of vertices the divisor 1 mesh data can hold.
      modelFile - The model file, if any.
      modelType - The model type string.
      primitive - The rendering primitive.
      Returns:
      The index of the new mesh data.
    • preRenderObjects Link icon

      protected void preRenderObjects(ExtShaderProgram shaderProgram, ICamera camera)
    • renderObject Link icon

      protected void renderObject(ExtShaderProgram shaderProgram, IRenderable renderable)
    • postRenderObjects Link icon

      protected void postRenderObjects(ExtShaderProgram shaderProgram, ICamera camera)
    • renderStud Link icon

      public void renderStud(List<IRenderable> renderables, ICamera camera, double t)
      Specified by:
      renderStud in class AbstractRenderSystem