refactor(srp): move urp final color execution into managed feature

This commit is contained in:
2026-04-21 12:59:52 +08:00
parent 0063acadc9
commit 5bec70dcc5
12 changed files with 385 additions and 13 deletions

View File

@@ -8,6 +8,8 @@ namespace XCEngine.Rendering.Universal
{
private const string kColorScaleFullscreenPassName =
"Universal.ColorScaleFullscreen";
private const string kFinalColorFullscreenPassName =
"Universal.FinalColorFullscreen";
private const string kShaderVectorFullscreenPassName =
"Universal.ShaderVectorFullscreen";
@@ -156,6 +158,54 @@ namespace XCEngine.Rendering.Universal
.Commit();
}
protected bool RecordFinalColorFullscreenPass(
ScriptableRenderContext context,
FinalColorSettings settings,
string passName = null)
{
RenderGraphTextureHandle sourceColor;
RenderGraphTextureHandle outputColor;
return TryResolveDefaultFullscreenTargets(
context,
out sourceColor,
out outputColor) &&
RecordFinalColorFullscreenPass(
context,
sourceColor,
outputColor,
settings,
passName);
}
protected bool RecordFinalColorFullscreenPass(
ScriptableRenderContext context,
RenderGraphTextureHandle sourceColor,
RenderGraphTextureHandle outputColor,
FinalColorSettings settings,
string passName = null)
{
if (context == null ||
!outputColor.isValid)
{
return false;
}
RenderGraphRasterPassBuilder passBuilder =
context.AddRasterPass(
ResolveFullscreenPassName(
passName,
kFinalColorFullscreenPassName));
if (sourceColor.isValid)
{
passBuilder.UseColorSource(sourceColor);
}
return passBuilder
.SetColorAttachment(outputColor)
.SetFinalColorFullscreenExecution(settings)
.Commit();
}
internal static bool TryResolveStage(
RenderPassEvent passEvent,
out CameraFrameStage stage)