Align URP scene drawing with RenderGraph renderer lists
This commit is contained in:
@@ -38,6 +38,23 @@ namespace XCEngine.Rendering
|
||||
ref color);
|
||||
}
|
||||
|
||||
public bool DrawRendererList(
|
||||
RendererListHandle rendererList)
|
||||
{
|
||||
return m_nativeHandle != 0ul &&
|
||||
rendererList.isValid &&
|
||||
InternalCalls.Rendering_CommandBuffer_DrawRendererList(
|
||||
m_nativeHandle,
|
||||
rendererList.nativeIndex);
|
||||
}
|
||||
|
||||
public bool DrawSkybox()
|
||||
{
|
||||
return m_nativeHandle != 0ul &&
|
||||
InternalCalls.Rendering_CommandBuffer_DrawSkybox(
|
||||
m_nativeHandle);
|
||||
}
|
||||
|
||||
private readonly ulong m_nativeHandle;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
namespace XCEngine.Rendering
|
||||
{
|
||||
public struct RendererListHandle
|
||||
{
|
||||
private readonly int m_indexPlusOne;
|
||||
|
||||
private RendererListHandle(
|
||||
int indexPlusOne)
|
||||
{
|
||||
m_indexPlusOne = indexPlusOne;
|
||||
}
|
||||
|
||||
public bool isValid =>
|
||||
m_indexPlusOne > 0;
|
||||
|
||||
internal int nativeIndex =>
|
||||
m_indexPlusOne > 0
|
||||
? m_indexPlusOne - 1
|
||||
: -1;
|
||||
|
||||
internal static RendererListHandle FromNativeIndex(
|
||||
int nativeIndex)
|
||||
{
|
||||
return nativeIndex >= 0
|
||||
? new RendererListHandle(nativeIndex + 1)
|
||||
: default;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -28,6 +28,11 @@ namespace XCEngine.Rendering
|
||||
.Rendering_ScriptableRenderContext_GetFramePlanId(
|
||||
m_nativeHandle);
|
||||
|
||||
internal string passName =>
|
||||
InternalCalls
|
||||
.Rendering_ScriptableRenderContext_GetPassName(
|
||||
m_nativeHandle) ?? string.Empty;
|
||||
|
||||
public RenderGraphTextureHandle sourceColorTexture =>
|
||||
RenderGraphTextureHandle.FromNativeIndex(
|
||||
InternalCalls
|
||||
@@ -171,6 +176,23 @@ namespace XCEngine.Rendering
|
||||
name));
|
||||
}
|
||||
|
||||
internal RendererListHandle CreateRendererList(
|
||||
RendererListDesc rendererListDesc,
|
||||
DrawingSettings drawingSettings)
|
||||
{
|
||||
RenderStateBlock renderStateBlock =
|
||||
drawingSettings.renderStateBlock;
|
||||
return RendererListHandle.FromNativeIndex(
|
||||
InternalCalls
|
||||
.Rendering_ScriptableRenderContext_CreateRendererList(
|
||||
m_nativeHandle,
|
||||
ref rendererListDesc,
|
||||
drawingSettings.overrideMaterialPath ??
|
||||
string.Empty,
|
||||
drawingSettings.shaderPassName ?? string.Empty,
|
||||
ref renderStateBlock));
|
||||
}
|
||||
|
||||
// Public RenderGraph raster authoring entry point. Built-in fullscreen
|
||||
// kernels are internal URP implementation details, not public context
|
||||
// shortcuts.
|
||||
|
||||
Reference in New Issue
Block a user