20#include "InputProvider.h"
21#include "HvtStreamingAPI.h"
28 static constexpr auto memory_handle_type = vk::ExternalMemoryHandleTypeFlagBits::eOpaqueWin32;
29 static constexpr auto semaphore_handle_type = vk::ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32;
31 static constexpr auto memory_handle_type = vk::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
32 static constexpr auto semaphore_handle_type = vk::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd;
34 static constexpr auto inFlightSync = 3;
38 std::vector<StreamParameters> enumerateStreamsParameters()
const override;
39 std::vector<StreamImage> enumerateStreamImages(uint32_t streamIndex,
bool depth)
const override;
40 void acquireStreamsFrames(
const Extrinsics& targetViewExtrinsics, std::span<StreamFrameInfo> outFrameInfos)
override;
41 void releaseStreamsFrames()
override;
46 void loadLibrary(
const std::string& libraryPath);
49 void initSynchronisation();
55 PFN_hvtCreateStreamingContext createStreamingContext;
56 PFN_hvtEnumerateStreamsParameters enumerateStreamsParameters;
57 PFN_hvtExportStreamImages exportStreamImages;
58 PFN_hvtExportSemaphore exportSemaphore;
59 PFN_hvtAcquireStreamsFrames acquireStreamsFrames;
60 PFN_hvtReleaseStreamsFrames releaseStreamsFrames;
61 PFN_hvtStartStreaming startStreaming;
62 PFN_hvtStopStreaming stopStreaming;
63 PFN_hvtDestroySemaphore destroySemaphore;
64 PFN_hvtDestroyStreamingContext destroyStreamingContext;
71 vk::UniqueImage image;
72 vk::UniqueDeviceMemory memory;
73 vk::MemoryRequirements memoryRequirements;
74 vk::UniqueImageView imageView;
78 std::vector<ImageSlot> colorSlots;
79 std::vector<ImageSlot> depthSlots;
80 std::vector<StreamImage> colorImages;
81 std::vector<StreamImage> depthImages;
82 vk::UniqueSamplerYcbcrConversion ycbcrConversion;
83 vk::UniqueSampler colorSampler;
84 vk::UniqueSampler depthSampler;
88 vk::UniqueSemaphore acquireSemaphore;
89 vk::UniqueSemaphore releaseSempahore;
90 HvtSemaphore acquireHvt;
91 HvtSemaphore releaseHvt;
94 std::array<SyncInfo, inFlightSync> syncInfos;
95 int currentSyncSlot = 0;
98 vk::UniqueCommandPool commandPool;
99 HvtStreamingContext context;
100 std::vector<Stream> streamStorage;
101 std::vector<StreamParameters> cachedStreamParameters;
file that contains the VulkanWrapper class that manages the classes related to Vulkan code and ease t...
Class that manages the classes related to Vulkan code and act as a wrapper around them.