Пример #1
0
        void buildCommandBuffers()
        {
            for (int i = 0; i < swapChain.ImageCount; ++i)
            {
                cmds[i]?.Free();
                cmds[i] = cmdPool.AllocateAndStart();

                vke.CommandBuffer cmd = cmds[i];

                recordDraw(cmd, i);

                uiPipeline.RenderPass.Begin(cmd, uiFrameBuffers[i]);

                uiPipeline.Bind(cmd);
                cmd.BindDescriptorSet(uiPipeline.Layout, dsCrow);

                uiImage.SetLayout(cmd, VkImageAspectFlags.Color, VkImageLayout.ColorAttachmentOptimal, VkImageLayout.ShaderReadOnlyOptimal,
                                  VkPipelineStageFlags.ColorAttachmentOutput, VkPipelineStageFlags.FragmentShader);

                cmd.Draw(3, 1, 0, 0);

                uiImage.SetLayout(cmd, VkImageAspectFlags.Color, VkImageLayout.ShaderReadOnlyOptimal, VkImageLayout.ColorAttachmentOptimal,
                                  VkPipelineStageFlags.FragmentShader, VkPipelineStageFlags.BottomOfPipe);

                uiPipeline.RenderPass.End(cmd);

                cmds[i].End();
            }
        }
Пример #2
0
 protected virtual void recordDraw(vke.CommandBuffer cmd, int imageIndex)
 {
 }