Castor3D 0.12.0
Multiplatform 3D engine
|
#include <SceneCuller.hpp>
Classes | |
struct | RenderPassBuffers |
Types publics | |
template<typename NodeT > | |
using | NodeArrayT = std::vector< NodeT const * > |
template<typename NodeT > | |
using | SidedNodeArrayT = std::vector< std::pair< NodeT const *, bool > > |
template<typename NodeT > | |
using | SidedNodeBufferMapT = std::map< ashes::BufferBase const *, SidedNodeArrayT< NodeT > > |
template<typename NodeT > | |
using | SidedNodePipelineMapT = std::map< uint64_t, SidedNodeBufferMapT< NodeT > > |
template<typename NodeT > | |
using | SidedObjectNodeMapT = std::map< NodeObjectT< NodeT > const *, SidedNodeArrayT< NodeT > > |
template<typename NodeT > | |
using | SidedObjectNodePassMapT = std::map< Pass const *, SidedObjectNodeMapT< NodeT > > |
template<typename NodeT > | |
using | SidedObjectNodeBufferMapT = std::map< ashes::BufferBase const *, SidedObjectNodePassMapT< NodeT > > |
template<typename NodeT > | |
using | SidedObjectNodePipelineMapT = std::map< uint64_t, SidedObjectNodeBufferMapT< NodeT > > |
using | IndexedDrawCommandsBuffer = ashes::BufferPtr< VkDrawIndexedIndirectCommand > |
using | DrawCommandsBuffer = ashes::BufferPtr< VkDrawIndirectCommand > |
using | PipelineNodesBuffer = ashes::BufferPtr< PipelineNodes > |
using | PipelineBufferArray = std::vector< PipelineBuffer > |
Fonctions membres publiques | |
C3D_API | SceneCuller (Scene &scene, Camera *camera) |
virtual C3D_API | ~SceneCuller ()=default |
C3D_API void | registerRenderPass (RenderNodesPass const &renderPass) |
C3D_API void | unregisterRenderPass (RenderNodesPass const &renderPass) |
C3D_API void | compute () |
C3D_API uint32_t | getPipelineNodesIndex (RenderNodesPass const &renderPass, Submesh const &submesh, Pass const &pass, ashes::BufferBase const &buffer, bool isFrontCulled) const |
C3D_API uint32_t | getPipelineNodesIndex (RenderNodesPass const &renderPass, BillboardBase const &billboard, Pass const &pass, ashes::BufferBase const &buffer, bool isFrontCulled) const |
float | getMinCastersZ () |
Scene & | getScene () const |
bool | hasCamera () const |
Camera const & | getCamera () const |
Camera & | getCamera () |
bool | areAllChanged () const |
bool | areCulledChanged () const |
bool | hasCulledNodes (RenderNodesPass const &renderPass) const |
ashes::Buffer< VkDrawIndexedIndirectCommand > const & | getSubmeshIdxCommands (RenderNodesPass const &renderPass) const |
ashes::Buffer< VkDrawIndirectCommand > const & | getSubmeshNIdxCommands (RenderNodesPass const &renderPass) const |
ashes::Buffer< VkDrawIndirectCommand > const & | getBillboardCommands (RenderNodesPass const &renderPass) const |
ashes::Buffer< PipelineNodes > const & | getNodesIds (RenderNodesPass const &renderPass) const |
SidedNodePipelineMapT< SubmeshRenderNode > const & | getSubmeshNodes (RenderNodesPass const &renderPass) const |
SidedObjectNodePipelineMapT< SubmeshRenderNode > const & | getInstancedSubmeshNodes (RenderNodesPass const &renderPass) const |
SidedNodePipelineMapT< BillboardRenderNode > const & | getBillboardNodes (RenderNodesPass const &renderPass) const |
Attributs publics | |
SceneCullerSignal | onCompute |
Attributs protégés | |
Camera * | m_camera |
uint32_t | m_index |
bool | m_allChanged { true } |
bool | m_culledChanged { true } |
bool | m_sceneDirty { true } |
bool | m_cameraDirty { true } |
float | m_minCullersZ { 0.0f } |
NodeArrayT< SubmeshRenderNode > | m_culledSubmeshes |
NodeArrayT< BillboardRenderNode > | m_culledBillboards |
std::map< RenderNodesPass const *, RenderPassBuffers > | m_renderPasses |
OnSceneChangedConnection | m_sceneChanged |
OnCameraChangedConnection | m_cameraChanged |
using castor3d::SceneCuller::DrawCommandsBuffer = ashes::BufferPtr< VkDrawIndirectCommand > |
using castor3d::SceneCuller::IndexedDrawCommandsBuffer = ashes::BufferPtr< VkDrawIndexedIndirectCommand > |
using castor3d::SceneCuller::NodeArrayT = std::vector< NodeT const * > |
using castor3d::SceneCuller::PipelineBufferArray = std::vector< PipelineBuffer > |
using castor3d::SceneCuller::PipelineNodesBuffer = ashes::BufferPtr< PipelineNodes > |
using castor3d::SceneCuller::SidedNodeArrayT = std::vector< std::pair< NodeT const *, bool > > |
using castor3d::SceneCuller::SidedNodeBufferMapT = std::map< ashes::BufferBase const *, SidedNodeArrayT< NodeT > > |
using castor3d::SceneCuller::SidedNodePipelineMapT = std::map< uint64_t, SidedNodeBufferMapT< NodeT > > |
using castor3d::SceneCuller::SidedObjectNodeBufferMapT = std::map< ashes::BufferBase const *, SidedObjectNodePassMapT< NodeT > > |
using castor3d::SceneCuller::SidedObjectNodeMapT = std::map< NodeObjectT< NodeT > const *, SidedNodeArrayT< NodeT > > |
using castor3d::SceneCuller::SidedObjectNodePassMapT = std::map< Pass const *, SidedObjectNodeMapT< NodeT > > |
using castor3d::SceneCuller::SidedObjectNodePipelineMapT = std::map< uint64_t, SidedObjectNodeBufferMapT< NodeT > > |
|
virtualdefault |
|
inline |
Références m_allChanged.
|
inline |
Références m_culledChanged.
C3D_API void castor3d::SceneCuller::compute | ( | ) |
|
inline |
Références m_renderPasses.
|
inline |
Références m_renderPasses.
|
inline |
|
inline |
|
inline |
Références m_renderPasses.
|
inline |
Références m_minCullersZ.
|
inline |
Références m_renderPasses.
C3D_API uint32_t castor3d::SceneCuller::getPipelineNodesIndex | ( | RenderNodesPass const & | renderPass, |
BillboardBase const & | billboard, | ||
Pass const & | pass, | ||
ashes::BufferBase const & | buffer, | ||
bool | isFrontCulled | ||
) | const |
C3D_API uint32_t castor3d::SceneCuller::getPipelineNodesIndex | ( | RenderNodesPass const & | renderPass, |
Submesh const & | submesh, | ||
Pass const & | pass, | ||
ashes::BufferBase const & | buffer, | ||
bool | isFrontCulled | ||
) | const |
|
inline |
|
inline |
Références m_renderPasses.
|
inline |
Références m_renderPasses.
|
inline |
Références m_renderPasses.
|
inline |
|
inline |
Références m_renderPasses.
C3D_API void castor3d::SceneCuller::registerRenderPass | ( | RenderNodesPass const & | renderPass | ) |
C3D_API void castor3d::SceneCuller::unregisterRenderPass | ( | RenderNodesPass const & | renderPass | ) |
|
protected |
Référencé par areAllChanged().
|
protected |
Référencé par getCamera(), et hasCamera().
|
protected |
|
protected |
|
protected |
|
protected |
Référencé par areCulledChanged().
|
protected |
|
protected |
|
protected |
Référencé par getMinCastersZ().
|
protected |
|
protected |
|
protected |
|
mutable |