diff --git a/vulkan.d b/vulkan.d index 06a6aa7..8e219de 100644 --- a/vulkan.d +++ b/vulkan.d @@ -115,6 +115,7 @@ enum ShaderStage : VkShaderStageFlagBits Vertex = VK_SHADER_STAGE_VERTEX_BIT, Fragment = VK_SHADER_STAGE_FRAGMENT_BIT, Compute = VK_SHADER_STAGE_COMPUTE_BIT, + All = VK_SHADER_STAGE_VERTEX_BIT | VK_SHADER_STAGE_FRAGMENT_BIT | VK_SHADER_STAGE_COMPUTE_BIT, } alias SS = ShaderStage; @@ -272,9 +273,19 @@ enum StepInitialized : u32 alias SI = StepInitialized; -enum DescType : u32 +enum DescType : VkDescriptorType { - + Sampler = VK_DESCRIPTOR_TYPE_SAMPLER, + CombinedSampler = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, + Image = VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, + StorageImage = VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, + UniformTexelBuf = VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER, + StorageTexelBuf = VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, + Uniform = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, + DynamicUniform = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, + Storage = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, + StorageDynamic = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC, + InputAttach = VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, Max, } @@ -636,6 +647,15 @@ BindBuffers(Vulkan* vk, Buffer* index_buffer, Buffer* vertex_buffer) vkCmdBindVertexBuffers(vk.cmds[vk.frame_index], 0, 1, &vertex_buffer.buffer, &offset); } +void +BindBuffers(Vulkan* vk, MappedBuffer* index_buffer, MappedBuffer* vertex_buffer) +{ + VkDeviceSize offset = 0; + + vkCmdBindIndexBuffer(vk.cmds[vk.frame_index], index_buffer.buffer, 0, VK_INDEX_TYPE_UINT32); + vkCmdBindVertexBuffers(vk.cmds[vk.frame_index], 0, 1, &vertex_buffer.buffer, &offset); +} + MappedBuffer!(T) CreateMappedBuffer(T)(Vulkan* vk, BufferType type, u64 count) {