27#include "InputProvider.h"
30class VulkanPresentation;
36const int MAX_FRAMES_IN_FLIGHT = 3;
57 vk::Fence
submitDrawCall(std::tuple<int, uint32_t> idImage,
const std::vector<vk::Semaphore> & imageAvailableSemaphores, std::vector<vk::Semaphore> & signalSemaphore, uint32_t depthIndex = UINT_MAX);
63 bool initialized =
false;
77 vk::CommandPool commandPool;
79 std::vector<std::vector<vk::CommandBuffer>> commandBuffers;
81 std::vector<size_t > currentFrame;
84 std::vector<std::vector<vk::Fence>> inFlightFences;
86 std::vector<std::vector<std::optional<vk::Fence>>> imagesInFlight;
89 void createCommandPool();
91 void createCommandBuffers();
93 void recordCommandBuffers(vk::CommandBuffer& buff,
int view,
int i, std::span<InputProvider::StreamFrameInfo> frameInfos);
95 void createSyncObjects();
class that manages tasks related to Vulkan context (Vulkan Instance, Vulkan Physical device,...
The class that manages the drawing operation (manage and record command buffers).
vk::Fence submitDrawCall(std::tuple< int, uint32_t > idImage, const std::vector< vk::Semaphore > &imageAvailableSemaphores, std::vector< vk::Semaphore > &signalSemaphore, uint32_t depthIndex=UINT_MAX)
void init(InputProvider *inputProvider)
An abstract class that contains a common base of code for the class that inherit from it.
Class that manages the classes related to Vulkan code and act as a wrapper around them.
Abstraction of the way of the result is displayed (screen or HMD).
file that contains the common include for the Vulkan part