A batch of frame callbacks.
Definition frameevent.h:73
void ExecuteAsync(World *world)
Definition frameevent.cc:277
Util::Array< Processor * > processors
Definition frameevent.h:103
int order
sorting order in frame event
Definition frameevent.h:94
void Execute(World *world)
Definition frameevent.cc:165
bool async
Definition frameevent.h:95
~Batch()
Definition frameevent.cc:153
void CacheTable(MemDb::TableId, MemDb::TableSignature const &)
add a table to the cache of any processors that accepts it, that is attached to this frame batch
Definition frameevent.cc:237
void Prefilter(World *world, bool force=false)
prefilter all processors. Should not be done per frame - instead use CacheTable if you need to do inc...
Definition frameevent.cc:220
void ExecuteSequential(World *world)
Definition frameevent.cc:328
bool TryInsert(Processor *processor)
Try to insert a processor into the batch.
Definition frameevent.cc:181
Util::Array< Processor const * > GetProcessors() const
Definition frameevent.cc:262
void AddProcessor(Processor *processor)
Adds a processor to the frame event.
Definition frameevent.cc:70
Util::Array< Batch const * > const GetBatches() const
Definition frameevent.cc:139
int order
Definition frameevent.h:53
Util::Array< Batch * > batches
Batches that this event will execute.
Definition frameevent.h:64
FramePipeline * pipeline
Which pipeline is this event attached to.
Definition frameevent.h:61
void CacheTable(MemDb::TableId, MemDb::TableSignature const &)
add a table to the caches of any processors that accepts it, that is attached to this frame event
Definition frameevent.cc:127
void RemoveProcessor(Processor *processor)
Removes a processor for the frame event. Does not free the memory, you need to handle this yourself.
Definition frameevent.cc:106
void Run(World *world)
Runs the frame event.
Definition frameevent.cc:51
friend FramePipeline
Definition frameevent.h:58
void Prefilter(World *world, bool force=false)
prefilter all processors. Should not be done per frame - instead use CacheTable if you need to do inc...
Definition frameevent.cc:115
Util::StringAtom name
Definition frameevent.h:52
~FrameEvent()
Definition frameevent.cc:39
volatile bool inAsync
Definition frameevent.h:147
Util::Array< FrameEvent const * > const GetFrameEvents() const
Definition frameevent.cc:520
void RunRemaining()
Run until the pipeline ends.
Definition frameevent.cc:473
void Prefilter(bool force=false)
prefilter all processors. Should not be done per frame - instead use CacheTable if you need to do inc...
Definition frameevent.cc:496
void Reset()
Reset the pipeline to the start.
Definition frameevent.cc:445
void Begin()
Start running the pipeline.
Definition frameevent.cc:427
friend FrameEvent
Definition frameevent.h:143
IndexT currentIndex
Definition frameevent.h:148
bool isRunning
Definition frameevent.h:146
bool IsRunningAsync()
check if the pipeline is currently executing an async frame event batch
Definition frameevent.cc:487
World * world
Definition frameevent.h:145
Util::Array< FrameEvent * > frameEvents
Definition frameevent.h:149
void CacheTable(MemDb::TableId, MemDb::TableSignature const &)
add a table to the caches of any processors that accepts it, that is attached to this frame event
Definition frameevent.cc:508
FrameEvent * GetFrameEvent(Util::StringAtom name)
Definition frameevent.cc:411
void End()
Stop running the pipeline.
Definition frameevent.cc:438
void RunThru(Util::StringAtom name)
Run and execute until a certain event is executed (inclusive)
Definition frameevent.cc:454
~FramePipeline()
Definition frameevent.cc:366
FrameEvent * RegisterFrameEvent(int order, Util::StringAtom name)
Definition frameevent.cc:378
Definition processor.h:22
A container of entities, their components, and processors.
Definition world.h:81
Basically a bitfield with packed ComponentIds.
Definition tablesignature.h:26
Nebula's dynamic array class.
Definition array.h:60
A StringAtom.
Definition stringatom.h:22
Game::EditorState.
Definition graphicsmanager.h:64
This represents a "view" into an entity table.
Definition dataset.h:35
Definition frameevent.h:25
ProcessorJobInput * inputs
Definition frameevent.h:27
Game::World * world
Definition frameevent.h:26
Table identifier.
Definition tableid.h:14
int IndexT
Definition types.h:39