41#include <android/log.h>
42#include <android_native_app_glue.h>
47#include "InputProvider.h"
48#include "RenderingParameters.h"
56enum class PipelineMode{
76 XrGraphicsBindingVulkan2KHR getGraphicsBinding();
86 void init(
unsigned short portNumber);
109 void createImageCall(uint32_t width, uint32_t height, vk::Format format, vk::ImageTiling tiling, vk::ImageUsageFlags usage, vk::MemoryPropertyFlags properties, vk::Image& image, vk::DeviceMemory& imageMemory);
111 void createBufferCall(vk::DeviceSize size, vk::BufferUsageFlags usage, vk::MemoryPropertyFlags properties, vk::Buffer& buffer, vk::DeviceMemory& bufferMemory);
113 void copyMemory(VkDeviceSize& size, vk::DeviceMemory& memory,
unsigned char* dataToCopy);
115 void destroyImageAndMemory(std::vector<vk::Image> &vectorImage, std::vector<vk::DeviceMemory> &vectorMemory);
117 void destroyBufferAndMemory(std::vector<vk::Buffer>& vectorBuffer, std::vector<vk::DeviceMemory>& vectorMemory);
202 const std::vector<InputProvider::StreamFrameInfo>
getFramesInfo(
int view);
216 using RenderPassType = VulkanRenderpass;
219#ifdef HVT_UDP_CONTROL
223 unsigned short port = 0;
226 const char* fileN =
"./DumpCorrectionsVectors.txt";
228 android_app* appAndroid;
234 std::unique_ptr<VulkanRenderPassAbstract> renderPass;
241 int attachmentSize = 1;
244 std::vector<glm::vec3> correctionVectorRotation;
246 std::vector<glm::vec3> correctionVectorTranslation;
248 std::vector<glm::vec2> correctionFocal;
250 std::vector<glm::vec2> correctionPrincipalPt;
253 std::vector<bool> cameraActivation;
255 bool requestChange =
false;
258 std::vector<InputProvider::StreamFrameInfo> streamFrameInfos;
File that contain the VulkanContext class to manage Vulkan Instance, Physical device,...
Contains the class that manage the drawing process (manage and record command buffer,...
file that contains the class that manage the renderPass containing the synthesis and blending steps
Class that encapsulates the rendering parameters (RVS internal parameters + virtual camera parameters...
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).
Class that manages the classes related to Vulkan code and act as a wrapper around them.
void loadConfigurationsFromDisk()
const std::vector< InputProvider::StreamFrameInfo > getFramesInfo(int view)
bool isDepthOutputRecquired()
void copyMemory(VkDeviceSize &size, vk::DeviceMemory &memory, unsigned char *dataToCopy)
void setCorrectionTranslation(int camId, glm::vec3 translationCorrection)
void destroyBufferAndMemory(std::vector< vk::Buffer > &vectorBuffer, std::vector< vk::DeviceMemory > &vectorMemory)
void setScaleFactor(float scaleFactor)
void addDeltaToStartingPoint(glm::vec3 dPos, glm::vec3 dRot)
void saveConfigurationsToDisk()
const vk::Format internal1DAttachmentFormat
void setTriangleThreshold(float triangleThreshold)
void setCorrectionFocal(int camId, glm::vec2 focals)
vk::Extent2D getRenderOutputExtent()
void endInit(InputProvider *input, StartingPosition startingPt=StartingPosition::Average)
std::vector< vk::Format > getRenderPassSupportedDepthFormats() const
void createImageCall(uint32_t width, uint32_t height, vk::Format format, vk::ImageTiling tiling, vk::ImageUsageFlags usage, vk::MemoryPropertyFlags properties, vk::Image &image, vk::DeviceMemory &imageMemory)
bool requireAverageInputPosition
void setCorrectionPrincipalPt(int camId, glm::vec2 principalPt)
void setAverageInputPosition(std::vector< InputProvider::StreamFrameInfo > &frameInfo)
const vk::Format internalColorAttachmentFormat
vk::Extent2D getSwapchainExtend(int view=0)
void setBlendingFactor(float blendingfactor)
const std::vector< glm::vec3 > getCorrectionVectorRotation()
bool isUsingDifferentViewSize()
void destroyImageAndMemory(std::vector< vk::Image > &vectorImage, std::vector< vk::DeviceMemory > &vectorMemory)
void updateSpaceTransform(glm::vec3 translation, glm::vec3 rotation)
vk::Format getDepthSwapchainFormat(int view=0)
void createBufferCall(vk::DeviceSize size, vk::BufferUsageFlags usage, vk::MemoryPropertyFlags properties, vk::Buffer &buffer, vk::DeviceMemory &bufferMemory)
const bool multiviewSetup
vk::Format getSwapchainFormat(int view=0)
RenderingParameters params
const vk::Format qualityAttachmentFormat
std::vector< bool > getCameraActivation()
VulkanContext * getContext()
void setCameraActivation(std::vector< bool > activation)
vk::ImageLayout getLayoutAfterRenderpass()
void setCorrectionRotation(int camId, glm::vec3 rotationCorrection)
Abstraction of the way of the result is displayed (screen or HMD).
file that contains the common include for the Vulkan part