dpeter99

Vukan render Loop

May 19th, 2018
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.17 KB | None | 0 0
  1. Queue<CommandBuffer> renderQueue = new Queue<CommandBuffer>();
  2.  
  3.         public void NewDrawFrame()
  4.         {
  5.             for (int i = 0; i < 3; i++)
  6.             {
  7.                 // Acquire an index of drawing image for this frame.
  8.                 int imageIndex = swapchain.AcquireNextImage(semaphore: ImageAvailableSemaphore);
  9.  
  10.                 if (!renderQueue.Contains(commandBuffers[imageIndex]))
  11.                 {
  12.                     //TODO: Check if needs to be changed
  13.                     RecordCommandBuffer(imageIndex);
  14.  
  15.                     renderQueue.Enqueue(commandBuffers[imageIndex]);
  16.                 }
  17.             }
  18.  
  19.             renderQueue.Dequeue();
  20.  
  21.             // Submit recorded commands to graphics queue for execution.
  22.             cryoVulkan.GraphicsQueue.Submit(
  23.                 ImageAvailableSemaphore,
  24.                 PipelineStages.Transfer,
  25.                 renderQueue.Dequeue(),
  26.                 RenderingFinishedSemaphore
  27.             );
  28.  
  29.             // Present the color output to screen.
  30.             //FIGURE OUT THE IMAGE INDEX
  31.             cryoVulkan.PresentQueue.PresentKhr(RenderingFinishedSemaphore, swapchain, imageIndex);
  32.         }
Advertisement
Add Comment
Please, Sign In to add comment