global update

This commit is contained in:
2026-08-26 15:30:40 +03:00
parent 52aa5803af
commit 8055881fef
28 changed files with 401 additions and 624 deletions
+6 -5
View File
@@ -85,9 +85,9 @@ void CFunnyGameBridge::Init()
g_pKotUI->ConnectInterface(g_pRenderContext, RENDER_CONTEXT_INTERFACE_VERSION);
g_pKotUI->Init();
g_pXRManager->ConnectInterface(g_pRenderContext, RENDER_CONTEXT_INTERFACE_VERSION);
g_pXRManager->Init();
g_pRenderContext->ConnectInterface(g_pXRManager, XR_INTERFACE_VERSION);
//g_pXRManager->ConnectInterface(g_pRenderContext, RENDER_CONTEXT_INTERFACE_VERSION);
//g_pXRManager->Init();
//g_pRenderContext->ConnectInterface(g_pXRManager, XR_INTERFACE_VERSION);
g_pWorldRenderer->Init();
@@ -96,6 +96,7 @@ void CFunnyGameBridge::Init()
m_pMainViewport->SetPosition({0,0,0});
m_pMainViewport->SetRotation({0,0,0,1});
/*
IXRHeadset *pHeadSet = g_pXRManager->GetHeadset(0);
if (pHeadSet)
{
@@ -116,8 +117,8 @@ void CFunnyGameBridge::Init()
{
pHeadSet->GetController(i)->SetInputCallback(XRInputCallback);
V_printf("callback set on %p\n", pHeadSet->GetController(i));
}
*/
}
void CFunnyGameBridge::Tick( float fDelta )
@@ -168,7 +169,7 @@ void CFunnyGameBridge::Frame( float fDelta )
TryToConnectToServer();
g_pXRManager->Frame();
//g_pXRManager->Frame();
INetworkBase *pCurrentServer = g_pServerBridge;
pCurrentServer = g_pServerBridge;
+48 -2
View File
@@ -49,11 +49,17 @@ void CFunnyViewport::UpdateResolution( uint32_t uX, uint32_t uY )
g_pRenderContext->DestroyImage(m_pRenderImage);
}
m_pColor = g_pRenderContext->CreateRenderTarget(uX, uY, IMAGE_FORMAT_RGBA8_UNORM, MULTISAMPLE_TYPE_4_SAMPLES);
m_pColor->SetDebugName("m_pColor");
m_pNormal = g_pRenderContext->CreateRenderTarget(uX, uY, IMAGE_FORMAT_RGBA16_SNORM, MULTISAMPLE_TYPE_4_SAMPLES);
m_pNormal->SetDebugName("m_pNormal");
m_pWorldCoords = g_pRenderContext->CreateRenderTarget(uX, uY, IMAGE_FORMAT_RGBA32_SFLOAT, MULTISAMPLE_TYPE_4_SAMPLES);
m_pWorldCoords->SetDebugName("m_pWorldCoords");
m_pDepth = g_pRenderContext->CreateRenderTarget(uX, uY, IMAGE_FORMAT_D32_SFLOAT, MULTISAMPLE_TYPE_4_SAMPLES);
m_pDepth->SetDebugName("m_pDepth");
m_pColorResolved = g_pRenderContext->CreateRenderTarget(uX, uY, IMAGE_FORMAT_RGBA8_UNORM, MULTISAMPLE_TYPE_1_SAMPLES);
m_pColorResolved->SetDebugName("m_pColorResolved");
m_pRenderImage = g_pRenderContext->CreateStorageImage(uX, uY, IMAGE_FORMAT_RGBA16_SFLOAT, MULTISAMPLE_TYPE_1_SAMPLES);
m_pRenderImage->SetDebugName("m_pRenderImage");
m_uX = uX;
m_uY = uY;
}
@@ -319,6 +325,26 @@ void CFunnyWorldRenderer::Frame( float fDelta )
m_pViewBuffer->Unmap();
m_pRasterCommandList->StartRecording();
m_pRasterCommandList->BarrierTransition(
v->m_pColor,
IMAGE_LAYOUT_UNDEFINED, IMAGE_LAYOUT_COLOR,
STAGE_HAZARD_NONE, STAGE_HAZARD_RASTER_COLOR_OUT,
BARRIER_HAZARD_RASTER_COLOR);
m_pRasterCommandList->BarrierTransition(
v->m_pNormal,
IMAGE_LAYOUT_UNDEFINED, IMAGE_LAYOUT_COLOR,
STAGE_HAZARD_NONE, STAGE_HAZARD_RASTER_COLOR_OUT,
BARRIER_HAZARD_RASTER_COLOR);
m_pRasterCommandList->BarrierTransition(
v->m_pWorldCoords,
IMAGE_LAYOUT_UNDEFINED, IMAGE_LAYOUT_COLOR,
STAGE_HAZARD_NONE, STAGE_HAZARD_RASTER_COLOR_OUT,
BARRIER_HAZARD_RASTER_COLOR);
m_pRasterCommandList->BarrierTransition(
v->m_pDepth,
IMAGE_LAYOUT_UNDEFINED, IMAGE_LAYOUT_DEPTH_STENCIL,
STAGE_HAZARD_NONE, STAGE_HAZARD_RASTER_EARLY_DEPTH_OUT,
BARRIER_HAZARD_DEPTH_STENCIL);
m_pRasterCommandList->SetRenderResolution(uWidth, uHeight);
m_pRasterCommandList->SetRenderTarget(0, v->m_pColor);
m_pRasterCommandList->SetRenderTarget(1, v->m_pNormal);
@@ -373,15 +399,35 @@ void CFunnyWorldRenderer::Frame( float fDelta )
m_pRasterCommandList->DrawPrimitives(mesh->m_pVertexBuffer->GetSize()/32, 0, mesh->m_instances.GetSize(), u);
u += mesh->m_instances.GetSize();
}
m_pRasterCommandList->Barrier(STAGE_HAZARD_RASTER_COLOR_OUT, STAGE_HAZARD_NONE, 0);
m_pRasterCommandList->BarrierTransition(
v->m_pColor,
IMAGE_LAYOUT_COLOR, IMAGE_LAYOUT_TRANSFER_SRC,
STAGE_HAZARD_RASTER_COLOR_OUT, STAGE_HAZARD_TRANSFER,
0);
m_pRasterCommandList->BarrierTransition(
v->m_pColorResolved,
IMAGE_LAYOUT_UNDEFINED, IMAGE_LAYOUT_TRANSFER_DST,
STAGE_HAZARD_NONE, STAGE_HAZARD_TRANSFER,
0);
m_pRasterCommandList->ResolveImage(v->m_pColor, v->m_pColorResolved);
m_pRasterCommandList->BarrierTransition(
v->m_pColorResolved,
IMAGE_LAYOUT_TRANSFER_DST, IMAGE_LAYOUT_GENERAL,
STAGE_HAZARD_TRANSFER, STAGE_HAZARD_COMPUTE,
0);
m_pRasterCommandList->BarrierTransition(
v->m_pRenderImage,
IMAGE_LAYOUT_UNDEFINED, IMAGE_LAYOUT_GENERAL,
STAGE_HAZARD_NONE, STAGE_HAZARD_COMPUTE,
0);
m_pPostProcessingMaterial->CSSetTexture(0, 0, v->m_pColorResolved);
m_pPostProcessingMaterial->CSSetTexture(1, 0, v->m_pRenderImage);
m_pRasterCommandList->SetMaterial(m_pPostProcessingMaterial);
m_pRasterCommandList->Barrier(v->m_pColorResolved, true, false);
m_pRasterCommandList->Barrier(v->m_pRenderImage, false, true);
m_pRasterCommandList->DispatchCompute(uWidth, uHeight, 1);
m_pRasterCommandList->Barrier(STAGE_HAZARD_COMPUTE, STAGE_HAZARD_NONE, 0);
m_pRasterCommandList->EndRecording();
g_pRenderContext->SubmitCommandList(m_pRasterCommandList);