diff --git a/src/Magnum/Vk/Command.h b/src/Magnum/Vk/Command.h index 6ffba9e51..d175b8779 100644 --- a/src/Magnum/Vk/Command.h +++ b/src/Magnum/Vk/Command.h @@ -77,18 +77,18 @@ auto pipelineBarrier(PipelineStageFlags srcStageMask, const std::vector& memoryBarriers, const std::vector& bufferMemoryBarriers, const std::vector& imageMemoryBarriers) { - return [&memoryBarriers, &bufferMemoryBarriers, &imageMemoryBarriers](VkCommandBuffer cmdBuffer){ + return [srcStageMask, dstStageMask, &memoryBarriers, &bufferMemoryBarriers, &imageMemoryBarriers](VkCommandBuffer cmdBuffer){ vkCmdPipelineBarrier(cmdBuffer, - VkPipelineStageFlags(srcStageFlags), VkPipelineStageFlags(dstStageMask), + VkPipelineStageFlags(srcStageMask), VkPipelineStageFlags(dstStageMask), 0, memoryBarriers.size(), - Containers::StaticArrayView(memoryBarriers), + memoryBarriers.data(), bufferMemoryBarriers.size(), - Containers::StaticArrayView(bufferMemoryBarriers), + bufferMemoryBarriers.data(), imageMemoryBarriers.size(), - Containers::StaticArrayView(imageMemoryBarriers) + reinterpret_cast(imageMemoryBarriers.data()) ); - } + }; } }}} diff --git a/src/Magnum/Vk/CommandBuffer.h b/src/Magnum/Vk/CommandBuffer.h index 6119615a7..6f0eeefed 100644 --- a/src/Magnum/Vk/CommandBuffer.h +++ b/src/Magnum/Vk/CommandBuffer.h @@ -33,6 +33,8 @@ #include "Magnum/Magnum.h" #include "Magnum/Math/Range.h" #include "Magnum/Vk/Context.h" +#include "Magnum/Vk/RenderPass.h" +#include "Magnum/Vk/Framebuffer.h" #include "Magnum/Vk/visibility.h" #include "vulkan.h" @@ -98,8 +100,8 @@ class MAGNUM_VK_EXPORT CommandBuffer { return *this; } - CommandBuffer& beginRenderPass(SubpassContents subpassContents, VkRenderPass renderPass, - VkFramebuffer framebuffer, Range2Di renderArea, + CommandBuffer& beginRenderPass(SubpassContents subpassContents, RenderPass& renderPass, + Vk::Framebuffer& framebuffer, Range2Di renderArea, const std::vector& clearValues) { VkRenderPassBeginInfo renderPassBeginInfo { VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO, diff --git a/src/Magnum/Vk/Pipeline.h b/src/Magnum/Vk/Pipeline.h index dbc51054e..feacbfcb5 100644 --- a/src/Magnum/Vk/Pipeline.h +++ b/src/Magnum/Vk/Pipeline.h @@ -104,6 +104,8 @@ enum class PipelineStage: UnsignedInt { typedef Containers::EnumSet PipelineStageFlags; +CORRADE_ENUMSET_OPERATORS(PipelineStageFlags) + enum class BindPoint: UnsignedInt { Graphics = VK_PIPELINE_BIND_POINT_GRAPHICS, Compute = VK_PIPELINE_BIND_POINT_COMPUTE,