/
redgpu
/
ezEngine
Обзор
Документация
Войти
/
redgpu
/
ezEngine
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
dev
Code/EnginePlugins/OpenXRPlugin/Graphics/OpenXRSwapChain.h
57 строк
2 KB
Sanakan8472
OpenXR plugin fixes (#1800)
30 янв 2026, 18:51
Не верифицирован
30 янв 2026, 18:51
52fc455
Код
Авторство
О чём код?
#pragma once #include <GameEngine/XR/XRSwapChain.h> #include <OpenXRPlugin/Basics.h> #include <OpenXRPlugin/OpenXRIncludes.h> class ezOpenXR; class EZ_OPENXRPLUGIN_DLL ezGALOpenXRSwapChain : public ezGALXRSwapChain { public: ezSizeU32 GetRenderTargetSize() const { return m_CurrentSize; } XrSwapchain GetColorSwapchain() const { return m_ColorSwapchain.handle; } XrSwapchain GetDepthSwapchain() const { return m_DepthSwapchain.handle; } virtual void AcquireNextRenderTarget(ezGALDevice* pDevice) override; virtual void PresentRenderTarget(ezGALDevice* pDevice) override; void PresentRenderTarget() const; protected: virtual ezResult InitPlatform(ezGALDevice* pDevice) override; virtual ezResult DeInitPlatform(ezGALDevice* pDevice) override; private: friend class ezOpenXR; struct Swapchain { XrSwapchain handle = 0; int64_t format = 0; ezUInt32 imageCount = 0; uint32_t imageIndex = 0; }; private: ezGALOpenXRSwapChain(ezOpenXR* pXrInterface, ezGALMSAASampleCount::Enum msaaCount); XrResult InitSwapChain(ezGALMSAASampleCount::Enum msaaCount); void DeinitSwapChain(); private: XrInstance m_pInstance = XR_NULL_HANDLE; uint64_t m_SystemId = XR_NULL_SYSTEM_ID; XrSession m_pSession = XR_NULL_HANDLE; ezEnum<ezGALMSAASampleCount> m_MsaaCount; // Swapchain XrViewConfigurationView m_PrimaryConfigView; Swapchain m_ColorSwapchain; Swapchain m_DepthSwapchain; // Render targets - created by the graphics binding ezHybridArray<ezGALTextureHandle, 3> m_ColorRTs; ezHybridArray<ezGALTextureHandle, 3> m_DepthRTs; bool m_bImageAcquired = false; ezGALTextureHandle m_hColorRT; ezGALTextureHandle m_hDepthRT; };