Nebula
Loading...
Searching...
No Matches
Game::FramePipeline Class Reference

#include <frameevent.h>

Public Member Functions

 FramePipeline ()=delete
 
 FramePipeline (World *world)
 
 ~FramePipeline ()
 
FrameEventRegisterFrameEvent (int order, Util::StringAtom name)
 
FrameEventGetFrameEvent (Util::StringAtom name)
 
void Begin ()
 Start running the pipeline.
 
void End ()
 Stop running the pipeline.
 
void Reset ()
 Reset the pipeline to the start.
 
void RunThru (Util::StringAtom name)
 Run and execute until a certain event is executed (inclusive)
 
void RunRemaining ()
 Run until the pipeline ends.
 
bool IsRunningAsync ()
 check if the pipeline is currently executing an async frame event batch
 
void Prefilter (bool force=false)
 prefilter all processors. Should not be done per frame - instead use CacheTable if you need to do incremental caching
 
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
 
Util::Array< FrameEvent const * > const GetFrameEvents () const
 

Private Attributes

friend FrameEvent
 
Worldworld
 
bool isRunning = false
 
volatile bool inAsync = false
 
IndexT currentIndex = 0
 
Util::Array< FrameEvent * > frameEvents
 

Constructor & Destructor Documentation

◆ FramePipeline() [1/2]

Game::FramePipeline::FramePipeline ( )
delete

◆ FramePipeline() [2/2]

Game::FramePipeline::FramePipeline ( World * world)

◆ ~FramePipeline()

Game::FramePipeline::~FramePipeline ( )

Member Function Documentation

◆ Begin()

void Game::FramePipeline::Begin ( )

Start running the pipeline.

◆ CacheTable()

void Game::FramePipeline::CacheTable ( MemDb::TableId tid,
MemDb::TableSignature const & signature )

add a table to the caches of any processors that accepts it, that is attached to this frame event

◆ End()

void Game::FramePipeline::End ( )

Stop running the pipeline.

◆ GetFrameEvent()

FrameEvent * Game::FramePipeline::GetFrameEvent ( Util::StringAtom name)

◆ GetFrameEvents()

Util::Array< FrameEvent const * > const Game::FramePipeline::GetFrameEvents ( ) const

◆ IsRunningAsync()

bool Game::FramePipeline::IsRunningAsync ( )

check if the pipeline is currently executing an async frame event batch

◆ Prefilter()

void Game::FramePipeline::Prefilter ( bool force = false)

prefilter all processors. Should not be done per frame - instead use CacheTable if you need to do incremental caching

◆ RegisterFrameEvent()

FrameEvent * Game::FramePipeline::RegisterFrameEvent ( int order,
Util::StringAtom name )

◆ Reset()

void Game::FramePipeline::Reset ( )

Reset the pipeline to the start.

◆ RunRemaining()

void Game::FramePipeline::RunRemaining ( )

Run until the pipeline ends.

◆ RunThru()

void Game::FramePipeline::RunThru ( Util::StringAtom name)

Run and execute until a certain event is executed (inclusive)

Member Data Documentation

◆ currentIndex

IndexT Game::FramePipeline::currentIndex = 0
private

◆ FrameEvent

friend Game::FramePipeline::FrameEvent
private

◆ frameEvents

Util::Array<FrameEvent*> Game::FramePipeline::frameEvents
private

◆ inAsync

volatile bool Game::FramePipeline::inAsync = false
private

◆ isRunning

bool Game::FramePipeline::isRunning = false
private

◆ world

World* Game::FramePipeline::world
private

The documentation for this class was generated from the following files: