MayaFlux 0.3.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ bind_vertex_buffers()

void MayaFlux::Portal::Graphics::RenderFlow::bind_vertex_buffers ( CommandBufferID  cmd_id,
const std::vector< std::shared_ptr< Buffers::VKBuffer > > &  buffers,
uint32_t  first_binding = 0 
)

Bind vertex buffers.

Parameters
cmd_idCommand buffer ID
buffersVertex buffers to bind
first_bindingFirst binding index

Definition at line 720 of file RenderFlow.cpp.

724{
725 auto cmd = m_shader_foundry->get_command_buffer(cmd_id);
726 if (!cmd) {
728 "Invalid command buffer ID: {}", cmd_id);
729 return;
730 }
731
732 std::vector<vk::Buffer> vk_buffers;
733 std::vector<vk::DeviceSize> offsets(buffers.size(), 0);
734
735 vk_buffers.reserve(buffers.size());
736 for (const auto& buf : buffers) {
737 vk_buffers.push_back(buf->get_buffer());
738
739 /* void* mapped = buf->get_mapped_ptr();
740 if (mapped) {
741 float* data = reinterpret_cast<float*>(mapped);
742 MF_PRINT(Journal::Component::Portal, Journal::Context::Rendering,
743 "BIND_VERTEX: All vertex data:");
744 for (int v = 0; v < 3; ++v) {
745 int offset = v * 6; // 24 bytes / 4 bytes per float = 6 floats per vertex
746 MF_PRINT(Journal::Component::Portal, Journal::Context::Rendering,
747 " Vertex {}: pos=({}, {}, {}), color=({}, {}, {})",
748 v,
749 data[offset], data[offset + 1], data[offset + 2],
750 data[offset + 3], data[offset + 4], data[offset + 5]);
751 }
752 } else {
753 MF_RT_ERROR(Journal::Component::Portal, Journal::Context::Rendering,
754 "BIND_VERTEX: Buffer not host-mapped!");
755 } */
756 }
757
758 cmd.bindVertexBuffers(first_binding, vk_buffers, offsets);
759}
#define MF_ERROR(comp, ctx,...)
vk::CommandBuffer get_command_buffer(CommandBufferID cmd_id)
Get Vulkan command buffer handle from CommandBufferID.
@ Rendering
GPU rendering operations (graphics pipeline, frame rendering)
@ Portal
High-level user-facing API layer.

References MayaFlux::Portal::Graphics::ShaderFoundry::get_command_buffer(), m_shader_foundry, MF_ERROR, MayaFlux::Journal::Portal, and MayaFlux::Journal::Rendering.

+ Here is the call graph for this function: