compute shaders

This commit is contained in:
2026-06-13 01:51:28 +03:00
parent 3b128315e7
commit b8aa36ccc0
28 changed files with 498 additions and 170 deletions

View File

@@ -68,6 +68,7 @@ public:
virtual uint32_t GetHeadsetCount() override;
virtual IXRHeadset *GetHeadset( uint32_t i ) override;
bool bHasXR = false;
IRenderContext *m_pRenderContext;
COpenXRHeadset m_headset;
@@ -80,7 +81,10 @@ void COpenXRManager::Init()
PFN_xrInitializeLoaderKHR fnInitLoader = NULL;
XrResult r = xrGetInstanceProcAddr(NULL, "xrInitializeLoaderKHR", (PFN_xrVoidFunction*)&fnInitLoader);
if (r != XR_SUCCESS)
Plat_FatalErrorFunc("Failed to load OpenXR");
{
V_printf("Failed to load OpenXR, we are not running OpenXR\n");
return;
}
XrApplicationInfo appInfo = {};
appInfo.apiVersion = XR_API_VERSION_1_1;
V_strncpy(appInfo.applicationName, "funny", XR_MAX_APPLICATION_NAME_SIZE);
@@ -106,7 +110,10 @@ void COpenXRManager::Init()
createInfo.enabledApiLayerNames = layers;
r = xrCreateInstance(&createInfo, &m_instance);
if (r != XR_SUCCESS)
Plat_FatalErrorFunc("xrCreateInstance\n");
{
V_printf("xrCreateInstance failed, we are not running OpenXR\n");
return;
}
m_headset.m_pManager = this;
m_headset.Init();
@@ -116,6 +123,8 @@ void COpenXRManager::Init()
xrGetInstanceProperties(m_instance, &props);
V_printf("OpenXR runtime: %s\n", props.runtimeName);
bHasXR = true;
}
void COpenXRManager::Shutdown()
@@ -124,21 +133,25 @@ void COpenXRManager::Shutdown()
}
void COpenXRManager::Frame()
{
m_headset.Frame();
if (bHasXR)
m_headset.Frame();
}
void COpenXRManager::PreRender()
{
m_headset.BeforeRender();
if (bHasXR)
m_headset.BeforeRender();
}
void COpenXRManager::PostRender()
{
m_headset.AfterRender();
if (bHasXR)
m_headset.AfterRender();
}
void COpenXRManager::CopySwapchain()
{
m_headset.CopySwapchain();
if (bHasXR)
m_headset.CopySwapchain();
}
@@ -488,6 +501,9 @@ IXRHeadset *COpenXRManager::GetHeadset( uint32_t i )
{
if (i)
return 0;
if(bHasXR)
return 0;
return &m_headset;
}