Package games.pixscape.runtime.system
Class DirtyTrackerSystem
java.lang.Object
com.artemis.BaseSystem
games.pixscape.runtime.system.DirtyTrackerSystem
public final class DirtyTrackerSystem
extends com.artemis.BaseSystem
Dirty tracker hors-components (par bit) + submask GEOMETRY packé dans bitsByEntity[e].
- bitsByEntity[e] : int packed (coarse bits + submask GEOMETRY)
- 1 liste par coarse bit (IntArray) + idx[] pour swap-pop O(1)
- purge auto via SubscriptionListener.removed()
Convention:
- Le submask GEOMETRY = granularité logique (pos/origin/rot/scale/size).
- Le bit coarse GEOMETRY = "pipeline rendu doit être recalculé côté sprite sync".
API dev-friendly:
dirty.markDirty().transform(e).position().rotation();
dirty.markDirty().material(e);
dirty.markDirty().transform(e).all();
IMPORTANT: les builders retournés sont réutilisés (zéro alloc). Ne pas les stocker.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interfacestatic final classstatic final classFluent builder transform/geometry submask. -
Field Summary
Fields inherited from class com.artemis.BaseSystem
world -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidcamera(int e) com.badlogic.gdx.utils.IntArrayListe vivante des entités ticketées CAMERA (ne pas modifier).voidclearAll()voidclearAllGeomSub(int e) voidclearAllPhysicsSub(int e) voidclearEntity(int e) voidFlush de fin de frame (coarse + sub).voidclearGeomSub(int e, int subMask) voidclearPhysicsSub(int e, int subMask) intcoarseBits(int e) coarse onlyvoidcolor(int e) com.badlogic.gdx.utils.IntArrayListe vivante des entités ticketées COLOR (ne pas modifier).voidconsume(int bit, DirtyTrackerSystem.IntConsumer fn) voidvoidconsumeMask(int mask, DirtyTrackerSystem.IntConsumer fn) voidvoidensureCapacity(int capacity) voidgeometry(int e, int geomSubMask) Marque GEOMETRY coarse et OR le submask GeometryDirty.* dans le packed.com.badlogic.gdx.utils.IntArrayListe vivante des entités ticketées GEOMETRY (ne pas modifier).intgeomSub(int e) protected voidbooleanisDirty(int e, int coarseMask) voidjoint(int e, int subMask) com.badlogic.gdx.utils.IntArrayintjointSub(int e) voidlayer(int e) com.badlogic.gdx.utils.IntArrayListe vivante des entités ticketées LAYER (ne pas modifier).voidmark(int e, int coarseMask) voidmarkAll(int coarseMask) voidmaterial(int e) com.badlogic.gdx.utils.IntArrayListe vivante des entités ticketées MATERIAL (ne pas modifier).voidorder(int e) com.badlogic.gdx.utils.IntArrayListe vivante des entités ticketées ORDER (ne pas modifier).intpackedBits(int e) packed bits (coarse + geom sub).voidphysics(int e, int subMask) com.badlogic.gdx.utils.IntArrayintphysicsSub(int e) protected voidMethods inherited from class com.artemis.BaseSystem
begin, checkProcessing, dispose, end, getWorld, isEnabled, process, setEnabled, setWorld
-
Constructor Details
-
DirtyTrackerSystem
public DirtyTrackerSystem(int initialCapacityHint)
-
-
Method Details
-
initialize
protected void initialize()- Overrides:
initializein classcom.artemis.BaseSystem
-
processSystem
protected void processSystem()- Specified by:
processSystemin classcom.artemis.BaseSystem
-
markDirty
-
ensureCapacity
public void ensureCapacity(int capacity) -
mark
public void mark(int e, int coarseMask) -
material
public void material(int e) -
color
public void color(int e) -
order
public void order(int e) -
layer
public void layer(int e) -
camera
public void camera(int e) -
geometry
public void geometry(int e, int geomSubMask) Marque GEOMETRY coarse et OR le submask GeometryDirty.* dans le packed. -
geomSub
public int geomSub(int e) -
clearGeomSub
public void clearGeomSub(int e, int subMask) -
clearAllGeomSub
public void clearAllGeomSub(int e) -
packedBits
public int packedBits(int e) packed bits (coarse + geom sub). -
coarseBits
public int coarseBits(int e) coarse only -
isDirty
public boolean isDirty(int e, int coarseMask) -
consume
-
consumeMask
-
consumePhysics
-
consumeJoints
-
joint
public void joint(int e, int subMask) -
jointSub
public int jointSub(int e) -
clearFrame
public void clearFrame()Flush de fin de frame (coarse + sub). Objectif: supprimer la dépendance à "quel système consomme quoi". - Vide toutes les listes coarse. - Clear les coarse bits correspondants. - Clear AUSSI geomSub pour les entités encore ticketées en GEOMETRY (fail-safe). NB: le flux normal = UpdateWorldGeometrySystem clearAllGeomSub(e) lui-même. Ici on force à 0 si un oubli est arrivé (sinon submask peut “fuiter”). -
clearAll
public void clearAll() -
clearEntity
public void clearEntity(int e) -
geometryEntities
public com.badlogic.gdx.utils.IntArray geometryEntities()Liste vivante des entités ticketées GEOMETRY (ne pas modifier). -
materialEntities
public com.badlogic.gdx.utils.IntArray materialEntities()Liste vivante des entités ticketées MATERIAL (ne pas modifier). -
colorEntities
public com.badlogic.gdx.utils.IntArray colorEntities()Liste vivante des entités ticketées COLOR (ne pas modifier). -
orderEntities
public com.badlogic.gdx.utils.IntArray orderEntities()Liste vivante des entités ticketées ORDER (ne pas modifier). -
layerEntities
public com.badlogic.gdx.utils.IntArray layerEntities()Liste vivante des entités ticketées LAYER (ne pas modifier). -
cameraEntities
public com.badlogic.gdx.utils.IntArray cameraEntities()Liste vivante des entités ticketées CAMERA (ne pas modifier). -
physicsEntities
public com.badlogic.gdx.utils.IntArray physicsEntities() -
jointsEntities
public com.badlogic.gdx.utils.IntArray jointsEntities() -
physics
public void physics(int e, int subMask) -
physicsSub
public int physicsSub(int e) -
clearPhysicsSub
public void clearPhysicsSub(int e, int subMask) -
clearAllPhysicsSub
public void clearAllPhysicsSub(int e) -
markAll
public void markAll(int coarseMask)
-