Beispiel #1
0
        void buildCommandBuffers()
        {
            dev.WaitIdle();
            for (int i = 0; i < swapChain.ImageCount; ++i)
            {
                cmds[i]?.Free();
                cmds[i] = cmdPool.AllocateAndStart();

                renderer.buildCommandBuffers(cmds[i]);

                plToneMap.RenderPass.Begin(cmds[i], frameBuffers[i]);

                cmds[i].SetViewport(frameBuffers[i].Width, frameBuffers[i].Height);
                cmds[i].SetScissor(frameBuffers[i].Width, frameBuffers[i].Height);

                plToneMap.Bind(cmds[i]);
                plToneMap.BindDescriptorSet(cmds[i], descriptorSet);

                cmds[i].PushConstant(plToneMap.Layout, VkShaderStageFlags.Fragment, 8, new float[] { renderer.exposure, renderer.gamma }, 0);

                cmds[i].Draw(3, 1, 0, 0);

                plToneMap.RenderPass.End(cmds[i]);

                cmds[i].End();
            }
        }
Beispiel #2
0
 void buildCommandBuffers()
 {
     for (int i = 0; i < swapChain.ImageCount; ++i)
     {
         cmds[i]?.Free();
         cmds[i] = cmdPool.AllocateAndStart();
         renderer.buildCommandBuffers(cmds[i], i);
         cmds[i].End();
     }
 }
Beispiel #3
0
 protected override void recordDraw(CommandBuffer cmd, int imageIndex)
 {
     statPool.Begin(cmd);
     renderer.buildCommandBuffers(cmd, imageIndex);
     statPool.End(cmd);
 }