33#ifndef DVD_MANAGERS_RENDER_PASS_MANAGER_H_
34#define DVD_MANAGERS_RENDER_PASS_MANAGER_H_
46 struct NodeTransformData;
47 struct NodeMaterialData;
49 struct RTDrawDescriptor;
54 class SceneEnvironmentProbePool;
151 std::unique_ptr<RenderPass>
_pass{
nullptr };
Rough around the edges Adapter pattern abstracting the actual rendering API and access to the GPU.
Kernel & parent() noexcept
The kernel is the main system that connects all of our various systems: windows, gfx,...
Handle< ShaderProgram > _gbufferResolveShader
Handle< ShaderProgram > _oitCompositionShader
static constexpr U32 MAX_RENDER_PASSES
Time::ProfileTimer * _processGUITimer
U32 getLastTotalBinSize(RenderStage renderStage) const noexcept
RenderPass & setRenderPass(RenderStage renderStage, const vector< RenderStage > &dependencies={})
Add a new pass that will run once for each of the RenderStages specified.
void startRenderTasks(const RenderParams ¶ms, TaskPool &pool, Task *parentTask)
Time::ProfileTimer * _postFxRenderTimer
Time::ProfileTimer * _buildCommandBufferTimer
Mutex _waitForDependenciesLock
Time::ProfileTimer * _flushCommandBufferTimer
const RenderPass & getPassForStage(RenderStage renderStage) const noexcept
Handle< ShaderProgram > _oitCompositionShaderMS
std::array< RenderPassExecutor_uptr, to_base(RenderStage::COUNT)> _executors
std::array< I32, to_base(RenderStage::COUNT)> _drawCallCount
Time::ProfileTimer * _renderPassTimer
std::array< std::atomic_bool, to_base(RenderStage::COUNT)> _renderPassCompleted
void render(const RenderParams ¶ms)
Call every render queue's render function in order.
Time::ProfileTimer * _blitToDisplayTimer
std::array< RenderPassData, to_base(RenderStage::COUNT)> _renderPassData
I32 drawCallCount(const RenderStage stage) const noexcept
std::array< Time::ProfileTimer *, to_base(RenderStage::COUNT)> _processCommandBufferTimer
std::condition_variable _waitForDependencies
void doCustomPass(Camera *const camera, RenderPassParams params, GFX::CommandBuffer &bufferInOut, GFX::MemoryBarrierCommand &memCmdInOut)
Handle console commands that start with a forward slash.
void SetDefaultDrawDescriptor(RenderPassParams ¶ms)
eastl::vector< Type > vector
constexpr RenderTargetID INVALID_RENDER_TARGET_ID
std::array< RTClearEntry, RT_MAX_ATTACHMENT_COUNT > RTClearDescriptor
constexpr auto to_base(const Type value) -> Type
vector< VisibleNode > FeedBackContainer
SceneRenderState * _sceneRenderState
Time::ProfileTimer * _parentTimer
Rect< I32 > _targetViewport
std::unique_ptr< RenderPass > _pass
GFX::MemoryBarrierCommand _memCmd
RTClearDescriptor _clearDescriptorPrePass
const SceneGraphNode * _sourceNode
I64 _singleNodeRenderGUID
RTDrawDescriptor _targetDescriptorPrePass
RenderTargetID _targetOIT
RenderTargetID _targetHIZ
RTDrawDescriptor _targetDescriptorMainPass
RenderStagePass _stagePass
FeedBackContainer * _feedBackContainer
FrustumClipPlanes _clippingPlanes
RTClearDescriptor _clearDescriptorMainPass