Divide Framework 0.1
A free and open-source 3D Framework under heavy development
Loading...
Searching...
No Matches
Divide::RenderBin Class Reference

This class contains a list of "RenderBinItem"'s and stores them sorted depending on designation. More...

#include <RenderBin.h>

Public Types

using RenderBinStack = eastl::array< RenderBinItem, Config::MAX_VISIBLE_NODES >
 
using SortedQueue = eastl::fixed_vector< RenderingComponent *, Config::MAX_VISIBLE_NODES, false >
 
using SortedQueues = std::array< SortedQueue, to_base(RenderBinType::COUNT)>
 

Public Member Functions

 RenderBin ()=default
 
void sort (RenderBinType type, RenderingOrder renderOrder)
 
void populateRenderQueue (RenderStagePass stagePass, RenderQueuePackages &queueInOut) const
 
void postRender (const SceneRenderState &renderState, RenderStagePass stagePass, GFX::CommandBuffer &bufferInOut)
 
void addNodeToBin (const SceneGraphNode *sgn, RenderStagePass renderStagePass, F32 minDistToCameraSq)
 
void clear () noexcept
 
U16 getSortedNodes (SortedQueue &nodes) const
 
U16 getBinSize () const noexcept
 
const RenderBinItemgetItem (const U16 index) const
 
bool empty () const noexcept
 

Private Attributes

std::atomic_ushort _renderBinIndex
 
RenderBinStack _renderBinStack
 

Detailed Description

This class contains a list of "RenderBinItem"'s and stores them sorted depending on designation.

Definition at line 112 of file RenderBin.h.

Member Typedef Documentation

◆ RenderBinStack

Definition at line 114 of file RenderBin.h.

◆ SortedQueue

Definition at line 115 of file RenderBin.h.

◆ SortedQueues

Definition at line 116 of file RenderBin.h.

Constructor & Destructor Documentation

◆ RenderBin()

Divide::RenderBin::RenderBin ( )
default

Member Function Documentation

◆ addNodeToBin()

void Divide::RenderBin::addNodeToBin ( const SceneGraphNode sgn,
RenderStagePass  renderStagePass,
F32  minDistToCameraSq 
)

Definition at line 123 of file RenderBin.cpp.

◆ clear()

void Divide::RenderBin::clear ( )
noexcept

Definition at line 92 of file RenderBin.cpp.

◆ empty()

bool Divide::RenderBin::empty ( ) const
inlinenoexcept

Definition at line 131 of file RenderBin.h.

◆ getBinSize()

U16 Divide::RenderBin::getBinSize ( ) const
noexcept

Definition at line 103 of file RenderBin.cpp.

◆ getItem()

const RenderBinItem & Divide::RenderBin::getItem ( const U16  index) const

Definition at line 97 of file RenderBin.cpp.

◆ getSortedNodes()

U16 Divide::RenderBin::getSortedNodes ( SortedQueue nodes) const

Definition at line 108 of file RenderBin.cpp.

◆ populateRenderQueue()

void Divide::RenderBin::populateRenderQueue ( RenderStagePass  stagePass,
RenderQueuePackages queueInOut 
) const

Definition at line 140 of file RenderBin.cpp.

◆ postRender()

void Divide::RenderBin::postRender ( const SceneRenderState renderState,
RenderStagePass  stagePass,
GFX::CommandBuffer bufferInOut 
)

Definition at line 155 of file RenderBin.cpp.

◆ sort()

void Divide::RenderBin::sort ( RenderBinType  type,
RenderingOrder  renderOrder 
)

Definition at line 16 of file RenderBin.cpp.

Member Data Documentation

◆ _renderBinIndex

std::atomic_ushort Divide::RenderBin::_renderBinIndex
private

Definition at line 134 of file RenderBin.h.

◆ _renderBinStack

RenderBinStack Divide::RenderBin::_renderBinStack
private

Definition at line 135 of file RenderBin.h.


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