Example #1
0
        void recordDraw(CommandBuffer cmd, Framebuffer fb)
        {
            cmd.BeginRegion("models", 0.5f, 1f, 0f);
            pipeline.RenderPass.Begin(cmd, fb);

            cmd.SetViewport(fb.Width, fb.Height);
            cmd.SetScissor(fb.Width, fb.Height);

            cmd.BindDescriptorSet(pipeline.Layout, dsMats);
            pipeline.Bind(cmd);
            model.Bind(cmd);
            model.DrawAll(cmd, pipeline.Layout);

            cmd.EndRegion();
            cmd.BeginRegion("vkvg", 0.5f, 1f, 0f);
            uiPipeline.Bind(cmd);

            timestampQPool.Start(cmd);

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

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

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

            timestampQPool.End(cmd);

            pipeline.RenderPass.End(cmd);
            cmd.EndRegion();
        }