Class RenderSystem

All Implemented Interfaces:
Disposable, KryoSerializable

public final class RenderSystem extends GameSystem
Manages the order of rendering. Everything, except the UI, is rendered through this system. Layers are ordered by "z-index", from lowest to the highest (higher z-index is being drawn on top of a lower ones). Default systems add their (default) layers with z-index specified in config.GameRenderingOrder. By default, LayerRenderers will receive an instance of Batch which is already prepared to be used (batch.begin() already called, color set to WHITE, previous layers are flushed if needed, projection and transform matrices are reset to camera / zero, blending is enabled and "additive" color mode is set to the value specified by the layer) and it guarantees that this batch has not been affected by the previous layers. It is not necessary to use this instance of batch and it can be completely ignored - batch is there for a convenience, other rendering methods (ShapeRenderer / PolygonBatch / SpriteCache etc) can be used instead but LayerRenderer must properly configure them manually (make sure to set a proper color / matrices etc). Layers can do whatever they need to in their LayerRenderers - for example, switch a shader / end the batch, use ShapeRenderer instead, start rendering to FrameBuffers (using RenderManager's methods) etc.
  • Field Details

    • realDeltaTimeMultiplier

      public float realDeltaTimeMultiplier
    • gameOverGameSpeed

      public float gameOverGameSpeed
    • gameOverInterpolatedTime

      public float gameOverInterpolatedTime
    • currentInGameDeltaTime

      public float currentInGameDeltaTime
    • currentInterpolatedDeltaTime

      public float currentInterpolatedDeltaTime
    • currentRealDeltaTime

      public float currentRealDeltaTime
  • Constructor Details

    • RenderSystem

      public RenderSystem()
  • Method Details

    • setup

      public void setup()
      Description copied from class: GameSystem
      Произвести начальную настройку системы. На момент вызова этого метода, systemProvider содержит объекты всех систем.
      Overrides:
      setup in class GameSystem
    • getCamera

      public OrthographicCamera getCamera()
    • dispose

      public void dispose()
      Description copied from interface: com.badlogic.gdx.utils.Disposable
      Releases all resources of this object.
      Specified by:
      dispose in interface Disposable
      Overrides:
      dispose in class GameSystem
    • getLayer

      @Null public RenderSystem.Layer getLayer(int zIndex)
    • removeLayer

      @Null public RenderSystem.Layer removeLayer(int zIndex)
    • removeLayer

      @Null public RenderSystem.Layer removeLayer(RenderSystem.Layer layer)
    • addLayer

      public void addLayer(RenderSystem.Layer layer)
    • calculateDeltaTimes

      public void calculateDeltaTimes(Render event)
    • drawLayers

      public void drawLayers(Batch batch)
    • prepareBatch

      public void prepareBatch(Batch batch, boolean additive)
      Does the same as RenderingManager.prepareBatch but also resets projection / transform matrix to the current camera (in case it has been changed)
    • profileUpdate

      public boolean profileUpdate()
      Description copied from class: GameSystem
      Нужно ли учитывать время выполнения update() в Debug
      Overrides:
      profileUpdate in class GameSystem
    • affectsGameState

      public boolean affectsGameState()
      Specified by:
      affectsGameState in class GameSystem
    • getSystemName

      public String getSystemName()
      Specified by:
      getSystemName in class GameSystem