X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fbackends%2Fvulkan%2Fvulkan.h;h=a862acfe50a710e56ac9adbf117f83b32ae57471;hb=5ced451549e2238bb1195d03419437a395b9afec;hp=b4b084bd4f4b6928ea4ae1d1775331ae62181691;hpb=a16145549dc87c3b12671f797bd77b14bcc7786b;p=libs%2Fgl.git diff --git a/source/backends/vulkan/vulkan.h b/source/backends/vulkan/vulkan.h index b4b084bd..a862acfe 100644 --- a/source/backends/vulkan/vulkan.h +++ b/source/backends/vulkan/vulkan.h @@ -106,6 +106,7 @@ private: PFN_vkBeginCommandBuffer vkBeginCommandBuffer = 0; // 6.4 PFN_vkEndCommandBuffer vkEndCommandBuffer = 0; // 6.4 PFN_vkQueueSubmit vkQueueSubmit = 0; // 6.5 + PFN_vkCmdExecuteCommands vkCmdExecuteCommands = 0; // 6.7 PFN_vkCreateFence vkCreateFence = 0; // 7.3 PFN_vkDestroyFence vkDestroyFence = 0; // 7.3 PFN_vkGetFenceStatus vkGetFenceStatus = 0; // 7.3 @@ -155,6 +156,7 @@ private: PFN_vkCmdPushConstants vkCmdPushConstants = 0; // 14.2.10 PFN_vkCmdCopyBuffer vkCmdCopyBuffer = 0; // 19.2 PFN_vkCmdCopyBufferToImage vkCmdCopyBufferToImage = 0; // 19.4 + PFN_vkCmdBlitImage vkCmdBlitImage = 0; // 19.5 PFN_vkCmdBindIndexBuffer vkCmdBindIndexBuffer = 0; // 20.3 PFN_vkCmdDrawIndexed vkCmdDrawIndexed = 0; // 20.3 PFN_vkCmdBindVertexBuffers vkCmdBindVertexBuffers = 0; // 21.2 @@ -200,6 +202,9 @@ public: Result QueueSubmit(std::uint32_t submitCount, const VkSubmitInfo *pSubmits, VkFence fence) const { return { vkQueueSubmit(graphicsQueue, submitCount, pSubmits, handle_cast<::VkFence>(fence)), "vkQueueSubmit" }; } + void CmdExecuteCommands(VkCommandBuffer commandBuffer, std::uint32_t commandBufferCount, const VkCommandBuffer *pCommandBuffers) const + { vkCmdExecuteCommands(handle_cast<::VkCommandBuffer>(commandBuffer), commandBufferCount, handle_cast(pCommandBuffers)); } + // Chapter 7: Synchronization and Cache Control Result CreateFence(const VkFenceCreateInfo &rCreateInfo, VkFence &rFence) const { return { vkCreateFence(device, &rCreateInfo, 0, handle_cast<::VkFence *>(&rFence)), "vkCreateFence" }; } @@ -356,6 +361,9 @@ public: 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); } + void CmdBlitImage(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit *pRegions, VkFilter filter) const + { vkCmdBlitImage(handle_cast<::VkCommandBuffer>(commandBuffer), handle_cast<::VkImage>(srcImage), srcImageLayout, handle_cast<::VkImage>(dstImage), dstImageLayout, regionCount, pRegions, filter); } + // 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); }