X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fbackends%2Fvulkan%2Fvulkan.h;h=b4b084bd4f4b6928ea4ae1d1775331ae62181691;hp=373b75aed5284d2f1d6d124b773d67f2e431e60b;hb=a16145549dc87c3b12671f797bd77b14bcc7786b;hpb=bbdf52425b736a59d01dda215458c3a1c9bdb320 diff --git a/source/backends/vulkan/vulkan.h b/source/backends/vulkan/vulkan.h index 373b75ae..b4b084bd 100644 --- a/source/backends/vulkan/vulkan.h +++ b/source/backends/vulkan/vulkan.h @@ -133,10 +133,16 @@ private: PFN_vkUnmapMemory vkUnmapMemory = 0; // 11.2.9 PFN_vkCreateBuffer vkCreateBuffer = 0; // 12.1 PFN_vkDestroyBuffer vkDestroyBuffer = 0; // 12.1 + PFN_vkCreateImage vkCreateImage = 0; // 12.3 + PFN_vkDestroyImage vkDestroyImage = 0; // 12.3 PFN_vkCreateImageView vkCreateImageView = 0; // 12.5 PFN_vkDestroyImageView vkDestroyImageView = 0; // 12.5 PFN_vkGetBufferMemoryRequirements vkGetBufferMemoryRequirements = 0; // 12.7 + PFN_vkGetImageMemoryRequirements vkGetImageMemoryRequirements = 0; // 12.7 PFN_vkBindBufferMemory vkBindBufferMemory = 0; // 12.7 + PFN_vkBindImageMemory vkBindImageMemory = 0; // 12.7 + PFN_vkCreateSampler vkCreateSampler = 0; // 13 + PFN_vkDestroySampler vkDestroySampler = 0; // 13 PFN_vkCreateDescriptorSetLayout vkCreateDescriptorSetLayout = 0; // 14.2.1 PFN_vkDestroyDescriptorSetLayout vkDestroyDescriptorSetLayout = 0; // 14.2.1 PFN_vkCreatePipelineLayout vkCreatePipelineLayout = 0; // 14.2.2 @@ -148,6 +154,7 @@ private: PFN_vkCmdBindDescriptorSets vkCmdBindDescriptorSets = 0; // 14.2.7 PFN_vkCmdPushConstants vkCmdPushConstants = 0; // 14.2.10 PFN_vkCmdCopyBuffer vkCmdCopyBuffer = 0; // 19.2 + PFN_vkCmdCopyBufferToImage vkCmdCopyBufferToImage = 0; // 19.4 PFN_vkCmdBindIndexBuffer vkCmdBindIndexBuffer = 0; // 20.3 PFN_vkCmdDrawIndexed vkCmdDrawIndexed = 0; // 20.3 PFN_vkCmdBindVertexBuffers vkCmdBindVertexBuffers = 0; // 21.2 @@ -280,6 +287,12 @@ public: void DestroyBuffer(VkBuffer image) const { vkDestroyBuffer(device, handle_cast<::VkBuffer>(image), 0); } + Result CreateImage(const VkImageCreateInfo &rCreateInfo, VkImage &rImage) const + { return { vkCreateImage(device, &rCreateInfo, 0, handle_cast<::VkImage *>(&rImage)), "vkCreateImage" }; } + + void DestroyImage(VkImage image) const + { vkDestroyImage(device, handle_cast<::VkImage>(image), 0); } + Result CreateImageView(const VkImageViewCreateInfo &rCreateInfo, VkImageView &rView) const { return { vkCreateImageView(device, &rCreateInfo, 0, handle_cast<::VkImageView *>(&rView)), "vkCreateImageView" }; } @@ -289,9 +302,22 @@ public: void GetBufferMemoryRequirements(VkBuffer image, VkMemoryRequirements &rMemoryRequirements) const { vkGetBufferMemoryRequirements(device, handle_cast<::VkBuffer>(image), &rMemoryRequirements); } + void GetImageMemoryRequirements(VkImage image, VkMemoryRequirements &rMemoryRequirements) const + { vkGetImageMemoryRequirements(device, handle_cast<::VkImage>(image), &rMemoryRequirements); } + Result BindBufferMemory(VkBuffer image, VkDeviceMemory memory, VkDeviceSize memoryOffset) const { return { vkBindBufferMemory(device, handle_cast<::VkBuffer>(image), handle_cast<::VkDeviceMemory>(memory), memoryOffset), "vkBindBufferMemory" }; } + Result BindImageMemory(VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset) const + { return { vkBindImageMemory(device, handle_cast<::VkImage>(image), handle_cast<::VkDeviceMemory>(memory), memoryOffset), "vkBindImageMemory" }; } + + // Chapter 13: Samplers + Result CreateSampler(const VkSamplerCreateInfo &rCreateInfo, VkSampler &rSampler) const + { return { vkCreateSampler(device, &rCreateInfo, 0, handle_cast<::VkSampler *>(&rSampler)), "vkCreateSampler" }; } + + void DestroySampler(VkSampler sampler) const + { vkDestroySampler(device, handle_cast<::VkSampler>(sampler), 0); } + // Chapter 14: Resource Descriptors Result CreateDescriptorSetLayout(const VkDescriptorSetLayoutCreateInfo &rCreateInfo, VkDescriptorSetLayout &rSetLayout) const { return { vkCreateDescriptorSetLayout(device, &rCreateInfo, 0, handle_cast<::VkDescriptorSetLayout *>(&rSetLayout)), "vkCreateDescriptorSetLayout" }; } @@ -327,6 +353,9 @@ public: void CmdCopyBuffer(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, std::uint32_t regionCount, const VkBufferCopy *pRegions) const { vkCmdCopyBuffer(handle_cast<::VkCommandBuffer>(commandBuffer), handle_cast<::VkBuffer>(srcBuffer), handle_cast<::VkBuffer>(dstBuffer), regionCount, pRegions); } + void CmdCopyBufferToImage(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, std::uint32_t regionCount, const VkBufferImageCopy *pRegions) const + { vkCmdCopyBufferToImage(handle_cast<::VkCommandBuffer>(commandBuffer), handle_cast<::VkBuffer>(srcBuffer), handle_cast<::VkImage>(dstImage), dstImageLayout, regionCount, pRegions); } + // Chapter 20: Drawing Commands void CmdBindIndexBuffer(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType) const { vkCmdBindIndexBuffer(handle_cast<::VkCommandBuffer>(commandBuffer), handle_cast<::VkBuffer>(buffer), offset, indexType); }