feat(srp): add render state block scene draw overrides

- add managed RenderStateBlock authoring types and wire them through DrawingSettings
- let RenderObjectsRendererFeature author depth and stencil overrides for scene draws
- apply scene draw render state overrides inside builtin forward pipeline and document the stage plan
This commit is contained in:
2026-04-20 23:21:04 +08:00
parent 16788fec34
commit 7fe922d1c9
21 changed files with 707 additions and 15 deletions

View File

@@ -69,6 +69,13 @@ namespace Gameplay
public bool HasSceneRenderInjectionPointType;
public bool HasRendererListType;
public bool HasDrawingSettingsType;
public bool HasCompareFunctionType;
public bool HasStencilOpType;
public bool HasDepthStateType;
public bool HasStencilFaceStateType;
public bool HasStencilStateType;
public bool HasRenderStateMaskType;
public bool HasRenderStateBlockType;
public bool HasRenderQueueRangeType;
public bool HasRendererSortModeType;
public bool HasFilteringSettingsType;
@@ -375,6 +382,27 @@ namespace Gameplay
HasDrawingSettingsType =
contextType.Assembly.GetType(
"XCEngine.Rendering.DrawingSettings") != null;
HasCompareFunctionType =
contextType.Assembly.GetType(
"XCEngine.Rendering.CompareFunction") != null;
HasStencilOpType =
contextType.Assembly.GetType(
"XCEngine.Rendering.StencilOp") != null;
HasDepthStateType =
contextType.Assembly.GetType(
"XCEngine.Rendering.DepthState") != null;
HasStencilFaceStateType =
contextType.Assembly.GetType(
"XCEngine.Rendering.StencilFaceState") != null;
HasStencilStateType =
contextType.Assembly.GetType(
"XCEngine.Rendering.StencilState") != null;
HasRenderStateMaskType =
contextType.Assembly.GetType(
"XCEngine.Rendering.RenderStateMask") != null;
HasRenderStateBlockType =
contextType.Assembly.GetType(
"XCEngine.Rendering.RenderStateBlock") != null;
HasRenderQueueRangeType =
contextType.Assembly.GetType(
"XCEngine.Rendering.RenderQueueRange") != null;