using XCEngine.Rendering; namespace XCEngine.Rendering.Universal { internal enum RendererBlock { ShadowCaster = 0, DepthPrepass = 1, MainOpaque = 2, MainSkybox = 3, MainTransparent = 4, PostProcess = 5, FinalOutput = 6, Count = 7 } internal static class RendererBlockUtility { public static CameraFrameStage GetStage( RendererBlock block) { switch (block) { case RendererBlock.ShadowCaster: return CameraFrameStage.ShadowCaster; case RendererBlock.DepthPrepass: return CameraFrameStage.DepthOnly; case RendererBlock.MainOpaque: case RendererBlock.MainSkybox: case RendererBlock.MainTransparent: return CameraFrameStage.MainScene; case RendererBlock.PostProcess: return CameraFrameStage.PostProcess; case RendererBlock.FinalOutput: return CameraFrameStage.FinalOutput; default: return CameraFrameStage.MainScene; } } } }