Align URP scene drawing with RenderGraph renderer lists

This commit is contained in:
2026-04-28 00:03:24 +08:00
parent 6b488d5eac
commit 03967b152d
13 changed files with 908 additions and 48 deletions

View File

@@ -42,6 +42,8 @@ namespace XCEngine.Rendering
new List<RenderGraphTextureHandle>();
private readonly List<RenderGraphTextureHandle> m_readDepthTextures =
new List<RenderGraphTextureHandle>();
private readonly List<RendererListHandle> m_rendererLists =
new List<RendererListHandle>();
private readonly List<TextureBindingRequest> m_textureBindings =
new List<TextureBindingRequest>();
private readonly List<RenderGraphTextureHandle> m_colorAttachments =
@@ -123,6 +125,27 @@ namespace XCEngine.Rendering
return this;
}
public RenderGraphRasterPassBuilder UseRendererList(
RendererListHandle rendererList)
{
if (!rendererList.isValid)
{
return this;
}
for (int i = 0; i < m_rendererLists.Count; ++i)
{
if (m_rendererLists[i].nativeIndex ==
rendererList.nativeIndex)
{
return this;
}
}
m_rendererLists.Add(rendererList);
return this;
}
public RenderGraphRasterPassBuilder SetColorAttachment(
RenderGraphTextureHandle texture,
int index = 0)
@@ -309,6 +332,25 @@ namespace XCEngine.Rendering
}
}
for (int i = 0; i < m_rendererLists.Count; ++i)
{
RendererListHandle rendererList =
m_rendererLists[i];
if (!rendererList.isValid)
{
continue;
}
if (!InternalCalls
.Rendering_ScriptableRenderContext_AddRasterPassRendererList(
m_context.nativeHandle,
nativePassHandle,
rendererList.nativeIndex))
{
return false;
}
}
for (int i = 0; i < m_colorAttachments.Count; ++i)
{
RenderGraphTextureHandle colorAttachment =