跳到主要内容

:material-chevron-right-circle: vkCmdBindIndexBuffer

函数原型

void vkCmdBindIndexBuffer(
VkCommandBuffer commandBuffer,
VkBuffer buffer,
VkDeviceSize offset,
VkIndexType indexType);

描述

绑定索引缓冲区(Index Buffer)。

参数

  • commandBuffer : 录制指令的命令缓冲区。
  • buffer : 要绑定的索引缓冲(VkBuffer)。
  • offset : 从 buffer 中的哪个偏移位置开始(单位字节)。
  • indexType : 索引类型(VK_INDEX_TYPE_UINT16VK_INDEX_TYPE_UINT32VK_INDEX_TYPE_UINT8_EXT)。

返回值

代码示例

vkCreateBuffer(device, &bufferCreateInfo, nullptr, &index_buffer);

vkAllocateMemory(device, &memAlloc, nullptr, &memory);
void *mapped;
vkMapMemory(device, memory, 0, size, 0, &mapped);
memcpy(mapped, data, size);
vkUnmapMemory(device, memory);

vkBindBufferMemory(device, index_buffer, memory, 0);

vkCmdBindIndexBuffer(commandBuffer, index_buffer, 0, VK_INDEX_TYPE_UINT16);

vkCmdDrawIndexed(commandBuffer, 360, 1, 0, 0, 0);