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: