MCPcopy Create free account
hub / github.com/FlaxEngine/FlaxEngine / BindVB

Method BindVB

Source/Engine/GraphicsDevice/Vulkan/GPUContextVulkan.cpp:1092–1116  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1090}
1091
1092void GPUContextVulkan::BindVB(const Span<GPUBuffer*>& vertexBuffers, const uint32* vertexBuffersOffsets, GPUVertexLayout* vertexLayout)
1093{
1094 _vbCount = vertexBuffers.Length();
1095 if (!vertexLayout)
1096 vertexLayout = GPUVertexLayout::Get(vertexBuffers);
1097 if (_vertexLayout != vertexLayout)
1098 {
1099 _vertexLayout = (GPUVertexLayoutVulkan*)vertexLayout;
1100 _psDirtyFlag = true;
1101 }
1102 if (vertexBuffers.Length() == 0)
1103 return;
1104 const auto cmdBuffer = _cmdBufferManager->GetCmdBuffer();
1105 VkBuffer buffers[GPU_MAX_VB_BINDED];
1106 VkDeviceSize offsets[GPU_MAX_VB_BINDED];
1107 for (int32 i = 0; i < vertexBuffers.Length(); i++)
1108 {
1109 auto vbVulkan = static_cast<GPUBufferVulkan*>(vertexBuffers[i]);
1110 if (!vbVulkan)
1111 vbVulkan = _device->HelperResources.GetDummyVertexBuffer();
1112 buffers[i] = vbVulkan->GetHandle();
1113 offsets[i] = vertexBuffersOffsets ? vertexBuffersOffsets[i] : 0;
1114 }
1115 vkCmdBindVertexBuffers(cmdBuffer->GetHandle(), 0, vertexBuffers.Length(), buffers, offsets);
1116}
1117
1118void GPUContextVulkan::BindIB(GPUBuffer* indexBuffer)
1119{

Callers 9

ExecuteDrawCallsMethod · 0.45
RenderRadialLightMethod · 0.45
RenderMethod · 0.45
DrawDecalsMethod · 0.45
onJobRenderMethod · 0.45
RenderMethod · 0.45
DrawBatchFunction · 0.45
DrawMethod · 0.45
RenderMethod · 0.45

Calls 5

GetCmdBufferMethod · 0.80
GetDummyVertexBufferMethod · 0.80
GetFunction · 0.50
LengthMethod · 0.45
GetHandleMethod · 0.45

Tested by

no test coverage detected