Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Queue<CommandBuffer> renderQueue = new Queue<CommandBuffer>();
- public void NewDrawFrame()
- {
- for (int i = 0; i < 3; i++)
- {
- // Acquire an index of drawing image for this frame.
- int imageIndex = swapchain.AcquireNextImage(semaphore: ImageAvailableSemaphore);
- if (!renderQueue.Contains(commandBuffers[imageIndex]))
- {
- //TODO: Check if needs to be changed
- RecordCommandBuffer(imageIndex);
- renderQueue.Enqueue(commandBuffers[imageIndex]);
- }
- }
- renderQueue.Dequeue();
- // Submit recorded commands to graphics queue for execution.
- cryoVulkan.GraphicsQueue.Submit(
- ImageAvailableSemaphore,
- PipelineStages.Transfer,
- renderQueue.Dequeue(),
- RenderingFinishedSemaphore
- );
- // Present the color output to screen.
- //FIGURE OUT THE IMAGE INDEX
- cryoVulkan.PresentQueue.PresentKhr(RenderingFinishedSemaphore, swapchain, imageIndex);
- }
Advertisement
Add Comment
Please, Sign In to add comment