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

@@ -71,6 +71,7 @@ namespace Gameplay
public bool HasRenderGraphRasterPassBuilderType;
public bool HasRenderGraphRasterPassBuilderUseColorSource;
public bool HasRenderGraphRasterPassBuilderUseTexture;
public bool HasRenderGraphRasterPassBuilderUseRendererList;
public bool HasRenderGraphRasterPassBuilderSetColorAttachment;
public bool HasRenderGraphRasterPassBuilderSetRenderFunc;
public bool HasRenderGraphRasterPassBuilderSetColorScaleFullscreenExecution;
@@ -111,11 +112,15 @@ namespace Gameplay
public bool HasContextContainerGetOrCreate;
public bool HasRenderGraphType;
public bool HasRenderGraphAddRasterPass;
public bool HasRenderGraphCreateRendererList;
public bool HasRenderPassPublicRecordRenderGraph;
public bool HasPublicRenderingDataFramePlanId;
public bool HasRenderPassProtectedRecordColorScaleFullscreenPass;
public bool HasRenderPassProtectedRecordShaderVectorFullscreenPass;
public bool HasRenderPassProtectedRecordFinalColorFullscreenPass;
public bool HasRendererListHandleType;
public bool HasCommandBufferDrawRendererList;
public bool HasCommandBufferDrawSkybox;
public bool HasRenderPassComparisonOperators;
public bool HasRenderPassEventUnityNumericOrder;
public bool HasRenderPassEventEngineExtensionOrder;
@@ -201,6 +206,8 @@ namespace Gameplay
typeof(ScriptableRenderPass);
System.Type commandBufferType =
typeof(CommandBuffer);
System.Type rendererListHandleType =
typeof(RendererListHandle);
System.Type profilingSamplerType =
typeof(ProfilingSampler);
System.Type sceneRenderPhaseType =
@@ -502,6 +509,16 @@ namespace Gameplay
rasterPassBuilderType.GetMethod(
"UseTexture",
PublicInstanceMethodFlags) != null;
HasRenderGraphRasterPassBuilderUseRendererList =
rasterPassBuilderType.GetMethod(
"UseRendererList",
PublicInstanceMethodFlags,
null,
new System.Type[]
{
typeof(RendererListHandle)
},
null) != null;
HasRenderGraphRasterPassBuilderSetColorAttachment =
rasterPassBuilderType.GetMethod(
"SetColorAttachment",
@@ -674,6 +691,17 @@ namespace Gameplay
typeof(string)
},
null) != null;
HasRenderGraphCreateRendererList =
renderGraphType.GetMethod(
"CreateRendererList",
PublicInstanceMethodFlags,
null,
new System.Type[]
{
typeof(RendererListDesc),
typeof(DrawingSettings)
},
null) != null;
HasRenderPassPublicRecordRenderGraph =
renderPassType.GetMethod(
"RecordRenderGraph",
@@ -704,6 +732,22 @@ namespace Gameplay
"RecordFinalColorFullscreenPass",
BindingFlags.Instance |
BindingFlags.NonPublic) != null;
HasRendererListHandleType =
rendererListHandleType != null;
HasCommandBufferDrawRendererList =
commandBufferType.GetMethod(
"DrawRendererList",
PublicInstanceMethodFlags,
null,
new System.Type[]
{
typeof(RendererListHandle)
},
null) != null;
HasCommandBufferDrawSkybox =
commandBufferType.GetMethod(
"DrawSkybox",
PublicInstanceMethodFlags) != null;
HasRenderPassComparisonOperators =
renderPassType.GetMethod(
"op_GreaterThan",