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.
  • Constructor Details

    • DirtyTrackerSystem

      public DirtyTrackerSystem(int initialCapacityHint)
  • Method Details

    • initialize

      protected void initialize()
      Overrides:
      initialize in class com.artemis.BaseSystem
    • processSystem

      protected void processSystem()
      Specified by:
      processSystem in class com.artemis.BaseSystem
    • markDirty

      public DirtyTrackerSystem.MarkDirty 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

      public void consume(int bit, DirtyTrackerSystem.IntConsumer fn)
    • consumeMask

      public void consumeMask(int mask, DirtyTrackerSystem.IntConsumer fn)
    • consumePhysics

      public void consumePhysics(DirtyTrackerSystem.IntConsumer fn)
    • consumeJoints

      public void consumeJoints(DirtyTrackerSystem.IntConsumer fn)
    • 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)