Package com.prineside.tdi2.systems
Class RenderSystem
java.lang.Object
com.prineside.tdi2.Registrable
com.prineside.tdi2.GameSystem
com.prineside.tdi2.systems.RenderSystem
- All Implemented Interfaces:
Disposable,KryoSerializable
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.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final classstatic interface -
Field Summary
FieldsModifier and TypeFieldDescriptionfloatfloatfloatfloatfloatlongFields inherited from class com.prineside.tdi2.Registrable
S -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddLayer(RenderSystem.Layer layer) booleanvoidcalculateDeltaTimes(Render event) voiddispose()Releases all resources of this object.voiddrawLayers(Batch batch) getLayer(int zIndex) voidprepareBatch(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)booleanShould the update() method be rendered on the debug overlayremoveLayer(RenderSystem.Layer layer) removeLayerByZIndex(int zIndex) voidsetup()Performs the initial configuration of the system.Methods inherited from class com.prineside.tdi2.GameSystem
getFastStateHash, postSetup, postStateRestore, updateMethods inherited from class com.prineside.tdi2.Registrable
isRegistered, read, setRegistered, setUnregistered, write
-
Field Details
-
gameOverGameSpeed
public float gameOverGameSpeed -
gameOverTimestamp
public long gameOverTimestamp -
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:GameSystemPerforms the initial configuration of the system. At the moment of call, systemProvider already contains all objects of systems.- Overrides:
setupin classGameSystem
-
getCamera
-
dispose
public void dispose()Description copied from interface:com.badlogic.gdx.utils.DisposableReleases all resources of this object.- Specified by:
disposein interfaceDisposable- Overrides:
disposein classGameSystem
-
getLayer
-
removeLayerByZIndex
-
removeLayer
-
addLayer
-
calculateDeltaTimes
-
drawLayers
-
prepareBatch
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:GameSystemShould the update() method be rendered on the debug overlay- Overrides:
profileUpdatein classGameSystem
-
affectsGameState
public boolean affectsGameState()- Specified by:
affectsGameStatein classGameSystem
-
getSystemName
- Specified by:
getSystemNamein classGameSystem
-