27#include "InputProvider.h"
31class VulkanRenderpass;
42 alignas(16) glm::mat4x4
R;
44 alignas(16) glm::vec4
t;
73 alignas(8) glm::vec2
f;
75 alignas(8) glm::vec2
p;
78 alignas(8) glm::vec2
n_f;
80 alignas(8) glm::vec2
n_p;
151 void init()
override;
172 void update(std::span<InputProvider::StreamFrameInfo> infos,
int view)
override;
199 inline static uint32_t indiceCount = 0;
201 void createVertexBuffer()
override;
203 void createIndexBuffer()
override;
206 void createUniformBuffer(
int size)
override;
208 void createDescriptorPool()
override;
210 void createDescriptorSets()
override;
212 void updateDescriptorSets(
int attachment,
int slot);
214 void updateCameraBuffer(uint32_t currentImage);
216 void copyBufferToImage(vk::Buffer buffer, vk::Image image, uint32_t width, uint32_t height);
219 vk::DescriptorPool descriptorPool;
221 std::vector<vk::DescriptorSet> descriptorSets;
225 std::vector<InputProvider::StreamImage> textureStreamImages;
227 std::vector<InputProvider::StreamImage> depthStreamImages;
232 std::vector<vk::Buffer> uniformBuffersCam;
234 std::vector<vk::DeviceMemory> uniformBuffersCamMemory;
237 std::vector<vk::Buffer> uniformBuffers;
239 std::vector<vk::DeviceMemory> uniformBuffersMemory;
242 std::vector<vk::Buffer> uniformBuffersGeom;
244 std::vector<vk::DeviceMemory> uniformBuffersGeomMemory;
247 std::vector<vk::Buffer> uniformBuffersFrag;
249 std::vector<vk::DeviceMemory> uniformBuffersFragMemory;
252 int attachmentSize = 0;
256 inline static vk::Buffer vertexBuffer;
258 inline static vk::DeviceMemory vertexBufferMemory;
260 inline static vk::Buffer indexBuffer ;
262 inline static vk::DeviceMemory indexBufferMemory ;
Abstract class that contains common functionnalities to manage the buffer for synthesis and blending ...
abstract class for the management of the buffers, descriptors, ...
VulkanRenderPass * renderpass
Control the data to be transmitted to the warping pipeline.
void update(std::span< InputProvider::StreamFrameInfo > infos, int view) override
static std::vector< uint32_t > indices
static void updateSettings(const InputProvider::StreamFrameInfo &infos, int view, const InputProvider::StreamParameters &streamParams, VulkanWrapper *wrapper, RVScamExtrinsics &extrinsics, RvsSynParam ¶ms)
void updateAllUniformBuffer(uint32_t currentImage, int view) override
vk::VertexInputBindingDescription getBindingDescription() override
uint32_t getIndiceCount() override
void bindBuffers(vk::CommandBuffer &commandBuffer, int index, InputProvider::StreamFrameInfo &frameInfos, int view) override
void updateUniformBuffer(uint32_t currentImage, int view) override
std::vector< vk::VertexInputAttributeDescription > getAttributeDescription() override
class that manages tasks related to Vulkan context (Vulkan Instance, Vulkan Physical device,...
Class that manages the graphic pipeline for the warping.
Class that manage the renderPass containing the synthesis and blending steps.
Class that manages the classes related to Vulkan code and act as a wrapper around them.
file that contains the common include for the Vulkan part
Struct that contains camera extrinsics values that must be sent to vertex shader of the warping pipel...
Struct that contains datas for the fragment shader of the warping pipeline.
Struct that contains datas for the geometry shader of the warping pipeline.
Struct that contains parameters for the vertex shader in the warping pipeline.