SpiecsEngine
 
Loading...
Searching...
No Matches

◆ UpdatePushConstant() [1/2]

template<typename T , typename F >
void Spices::Renderer::RenderBehaveBuilder::UpdatePushConstant ( F func,
VkCommandBuffer cmdBuffer = VK_NULL_HANDLE )

Update local push constant buffer.

Template Parameters
TSpecific push constant struct Type.
Parameters
[in]funcA function pointer, which defines what data inside the buffer.
[in]cmdBufferInput a VkCommandBuffer if needs, otherwise use self variable.

@breif Create pushconstant object.

@breif Write in data

Parameters
[in]pushpushconstant object.

@breif Update PushConstants

Definition at line 2471 of file Renderer.h.

2472 {
2474
2478 T push{};
2479
2484 func(push);
2485
2486 std::stringstream ss;
2487 ss << m_Renderer->m_RendererName << "." << m_HandledSubPass->GetName() << ".Default";
2488
2492 vkCmdPushConstants(
2493 cmdBuffer ? cmdBuffer : m_CommandBuffer,
2494 m_Renderer->m_Pipelines.Find(ss.str())->GetPipelineLayout(),
2495 VK_SHADER_STAGE_ALL,
2496 0,
2497 sizeof(T),
2498 &push
2499 );
2500 }
#define SPICES_PROFILE_ZONE
std::shared_ptr< RendererSubPass > m_HandledSubPass
Handled Sub pass.
Definition Renderer.h:1544
Renderer * m_Renderer
Specific Renderer pointer. Passed while this class instanced.
Definition Renderer.h:1515
VkCommandBuffer m_CommandBuffer
Current CommandBuffer.
Definition Renderer.h:1539
std::string m_RendererName
Specific renderer name, Passed by instanced.
Definition Renderer.h:2017
scl::thread_unordered_map< std::string, std::shared_ptr< VulkanPipeline > > m_Pipelines
Renderer stored material pipelines.
Definition Renderer.h:2022