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

This class manages all of the RenderBins and renders them in the correct order. More...

#include <RenderQueue.h>

+ Inheritance diagram for Divide::RenderQueue:

Classes

struct  PopulateQueueParams
 

Public Types

using RenderBinArray = std::array< RenderBin, to_base(RenderBinType::COUNT)>
 

Public Member Functions

 RenderQueue (Kernel &parent, RenderStage stage)
 
void populateRenderQueues (const PopulateQueueParams &params, RenderQueuePackages &queueInOut)
 
void postRender (const SceneRenderState &renderState, RenderStagePass stagePass, GFX::CommandBuffer &bufferInOut)
 
void sort (RenderStagePass stagePass, RenderBinType targetBinType=RenderBinType::COUNT, RenderingOrder renderOrder=RenderingOrder::COUNT)
 
void clear (RenderBinType targetBinType=RenderBinType::COUNT) noexcept
 
void addNodeToQueue (const SceneGraphNode *sgn, RenderStagePass stagePass, F32 minDistToCameraSq, RenderBinType targetBinType=RenderBinType::COUNT)
 
const RenderBingetBin (const RenderBinType rbType) const noexcept
 
RenderBinArraygetBins () noexcept
 
size_t getSortedQueues (const vector< RenderBinType > &binTypes, RenderBin::SortedQueues &queuesOut) const
 
- Public Member Functions inherited from Divide::KernelComponent
 KernelComponent (Kernel &parent) noexcept
 
virtual ~KernelComponent ()=default
 
Kernelparent () noexcept
 
const Kernelparent () const noexcept
 
- Public Member Functions inherited from Divide::NonCopyable
 NonCopyable (const NonCopyable &)=delete
 
NonCopyableoperator= (const NonCopyable &)=delete
 
 NonCopyable (NonCopyable &&)=default
 
NonCopyableoperator= (NonCopyable &&)=default
 

Private Member Functions

RenderingOrder getSortOrder (RenderStagePass stagePass, RenderBinType rbType) const
 
FORCE_INLINE RenderBingetBin (const RenderBinType rbType) noexcept
 
RenderBinType getBinForNode (const SceneGraphNode *node, Handle< Material > matInstance)
 

Private Attributes

const RenderStage _stage
 
RenderBinArray _renderBins
 

Additional Inherited Members

- Protected Member Functions inherited from Divide::NonCopyable
 NonCopyable ()=default
 
 ~NonCopyable ()=default
 
- Protected Attributes inherited from Divide::KernelComponent
Kernel_parent
 

Detailed Description

This class manages all of the RenderBins and renders them in the correct order.

Definition at line 49 of file RenderQueue.h.

Member Typedef Documentation

◆ RenderBinArray

Constructor & Destructor Documentation

◆ RenderQueue()

Divide::RenderQueue::RenderQueue ( Kernel parent,
RenderStage  stage 
)
explicit

Definition at line 17 of file RenderQueue.cpp.

Member Function Documentation

◆ addNodeToQueue()

void Divide::RenderQueue::addNodeToQueue ( const SceneGraphNode sgn,
RenderStagePass  stagePass,
F32  minDistToCameraSq,
RenderBinType  targetBinType = RenderBinType::COUNT 
)

Definition at line 103 of file RenderQueue.cpp.

◆ clear()

void Divide::RenderQueue::clear ( RenderBinType  targetBinType = RenderBinType::COUNT)
noexcept

Definition at line 228 of file RenderQueue.cpp.

◆ getBin() [1/2]

const RenderBin & Divide::RenderQueue::getBin ( const RenderBinType  rbType) const
inlinenoexcept

Definition at line 71 of file RenderQueue.h.

◆ getBin() [2/2]

FORCE_INLINE RenderBin & Divide::RenderQueue::getBin ( const RenderBinType  rbType)
inlineprivatenoexcept

Definition at line 80 of file RenderQueue.h.

◆ getBinForNode()

RenderBinType Divide::RenderQueue::getBinForNode ( const SceneGraphNode node,
Handle< Material matInstance 
)
private

Definition at line 61 of file RenderQueue.cpp.

◆ getBins()

RenderBinArray & Divide::RenderQueue::getBins ( )
inlinenoexcept

Definition at line 72 of file RenderQueue.h.

◆ getSortedQueues()

size_t Divide::RenderQueue::getSortedQueues ( const vector< RenderBinType > &  binTypes,
RenderBin::SortedQueues queuesOut 
) const

Definition at line 249 of file RenderQueue.cpp.

◆ getSortOrder()

RenderingOrder Divide::RenderQueue::getSortOrder ( RenderStagePass  stagePass,
RenderBinType  rbType 
) const
private

Definition at line 23 of file RenderQueue.cpp.

◆ populateRenderQueues()

void Divide::RenderQueue::populateRenderQueues ( const PopulateQueueParams params,
RenderQueuePackages queueInOut 
)

Definition at line 120 of file RenderQueue.cpp.

◆ postRender()

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

Definition at line 162 of file RenderQueue.cpp.

◆ sort()

void Divide::RenderQueue::sort ( RenderStagePass  stagePass,
RenderBinType  targetBinType = RenderBinType::COUNT,
RenderingOrder  renderOrder = RenderingOrder::COUNT 
)

Definition at line 170 of file RenderQueue.cpp.

Member Data Documentation

◆ _renderBins

RenderBinArray Divide::RenderQueue::_renderBins
private

Definition at line 85 of file RenderQueue.h.

◆ _stage

const RenderStage Divide::RenderQueue::_stage
private

Definition at line 84 of file RenderQueue.h.


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