HatchitGraphics
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
Hatchit::Graphics::RenderPassBase Class Referenceabstract
Inheritance diagram for Hatchit::Graphics::RenderPassBase:
Hatchit::Graphics::DX::D3D12RenderPass Hatchit::Graphics::Vulkan::VKRenderPass

Public Member Functions

virtual void VUpdate ()=0
 
void SetView (Math::Matrix4 view)
 Set the view matrix to be used in this render pass. More...
 
void SetProj (Math::Matrix4 proj)
 Set the projection matrix to be used in this render pass. More...
 
virtual bool VBuildCommandList (const ICommandPool *commandPool)=0
 
virtual void ScheduleRenderRequest (MaterialHandle material, MeshHandle mesh, ShaderVariableChunk *instanceVariables)
 Schedule a render request on this render pass. More...
 
virtual uint64_t GetLayerFlags ()
 Gets the layers that this RenderPassBase is a part of. More...
 

Protected Member Functions

void BuildRenderRequestHeirarchy ()
 Sorts this pass's render requests so that building the pass's commands is easier. More...
 

Protected Attributes

std::vector< RenderRequestm_renderRequests
 
std::map< PipelineHandle, std::vector< RenderableInstances > > m_pipelineList
 
std::map< MeshHandle, std::vector< ShaderVariableChunk * > > m_instanceData
 
std::vector< RenderTargetHandlem_outputRenderTargets
 
uint64_t m_layerflags = 1
 
uint32_t m_width
 
uint32_t m_height
 
Math::Matrix4 m_view
 
Math::Matrix4 m_proj
 

Member Function Documentation

void RenderPassBase::BuildRenderRequestHeirarchy ( )
protected

Sorts this pass's render requests so that building the pass's commands is easier.

This maps meshes and materials to the pipelines that they will be rendered with as well as shader instance variables with the meshes that they will be used to render.

uint64_t RenderPassBase::GetLayerFlags ( )
virtual

Gets the layers that this RenderPassBase is a part of.

Returns
A uint64_t bitfield of the layers that this is a part of
void RenderPassBase::ScheduleRenderRequest ( MaterialHandle  material,
MeshHandle  mesh,
ShaderVariableChunk instanceVariables 
)
virtual

Schedule a render request on this render pass.

Provide a material, mesh and any instance data you want and that object will be rendered in a command as part of this pass. The data will be sorted and built later.

Parameters
materialA handle to the material you want to render with
meshA handle to the mesh you want to render
instanceVariablesAny instance level variables required for rendering
void RenderPassBase::SetProj ( Math::Matrix4  proj)

Set the projection matrix to be used in this render pass.

Parameters
projThe Math::Matrix4 to be used for the projection matrix
void RenderPassBase::SetView ( Math::Matrix4  view)

Set the view matrix to be used in this render pass.

Parameters
viewThe Math::Matrix4 to be used for the view matrix

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