2026-04-22 02:15:03 +08:00
|
|
|
using XCEngine;
|
|
|
|
|
using XCEngine.Rendering;
|
|
|
|
|
|
|
|
|
|
namespace XCEngine.Rendering.Universal
|
|
|
|
|
{
|
|
|
|
|
internal static class UniversalMainSceneFeatureUtility
|
|
|
|
|
{
|
|
|
|
|
public static bool IsActive(
|
2026-04-28 01:25:29 +08:00
|
|
|
RendererPassQueueData passQueueData)
|
2026-04-22 02:15:03 +08:00
|
|
|
{
|
2026-04-28 01:25:29 +08:00
|
|
|
return passQueueData != null;
|
2026-04-22 02:15:03 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static bool SupportsPass(
|
2026-04-28 01:25:29 +08:00
|
|
|
RendererPassQueueData passQueueData,
|
2026-04-22 02:15:03 +08:00
|
|
|
ScriptableRenderPass renderPass)
|
|
|
|
|
{
|
2026-04-28 01:25:29 +08:00
|
|
|
return IsActive(passQueueData) &&
|
2026-04-22 02:15:03 +08:00
|
|
|
renderPass != null &&
|
|
|
|
|
renderPass.SupportsStage(
|
2026-04-27 22:38:56 +08:00
|
|
|
CameraFrameStage.MainScene);
|
2026-04-22 02:15:03 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static bool EnqueuePass(
|
|
|
|
|
ScriptableRenderer renderer,
|
2026-04-28 01:25:29 +08:00
|
|
|
RendererPassQueueData passQueueData,
|
2026-04-22 02:15:03 +08:00
|
|
|
ScriptableRenderPass renderPass)
|
|
|
|
|
{
|
|
|
|
|
if (renderer == null ||
|
|
|
|
|
!SupportsPass(
|
2026-04-28 01:25:29 +08:00
|
|
|
passQueueData,
|
2026-04-22 02:15:03 +08:00
|
|
|
renderPass))
|
|
|
|
|
{
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
renderer.EnqueuePass(renderPass);
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|