refactor(srp): move renderer request helpers out of core
This commit is contained in:
@@ -0,0 +1,77 @@
|
||||
using System.Reflection;
|
||||
using XCEngine;
|
||||
using XCEngine.Rendering;
|
||||
using XCEngine.Rendering.Renderer;
|
||||
|
||||
namespace Gameplay
|
||||
{
|
||||
public sealed class ScriptableRenderContextApiSurfaceProbe
|
||||
: MonoBehaviour
|
||||
{
|
||||
public bool HasPublicContextRecordScene;
|
||||
public bool HasPublicContextRecordOpaqueScenePhase;
|
||||
public bool HasPublicContextRecordBeforeOpaqueInjection;
|
||||
public bool HasPublicContextRecordShaderVectorFullscreenPass;
|
||||
public bool HasPublicRendererRecordOpaqueScenePhase;
|
||||
public bool HasPublicRendererRecordShaderVectorFullscreenPass;
|
||||
public bool HasPublicCameraRequestContextHasDirectionalShadow;
|
||||
public bool HasPublicCameraRequestContextClearDirectionalShadow;
|
||||
public bool HasPublicRendererCameraRequestContextHasDirectionalShadow;
|
||||
public bool HasPublicRendererCameraRequestContextClearDirectionalShadow;
|
||||
|
||||
public void Start()
|
||||
{
|
||||
const BindingFlags PublicInstanceMethodFlags =
|
||||
BindingFlags.Instance | BindingFlags.Public;
|
||||
System.Type contextType =
|
||||
typeof(ScriptableRenderContext);
|
||||
System.Type rendererContextType =
|
||||
typeof(RendererRecordingContext);
|
||||
System.Type cameraRequestContextType =
|
||||
typeof(ScriptableRenderPipelineCameraRequestContext);
|
||||
System.Type rendererCameraRequestContextType =
|
||||
typeof(RendererCameraRequestContext);
|
||||
|
||||
HasPublicContextRecordScene =
|
||||
contextType.GetMethod(
|
||||
"RecordScene",
|
||||
PublicInstanceMethodFlags) != null;
|
||||
HasPublicContextRecordOpaqueScenePhase =
|
||||
contextType.GetMethod(
|
||||
"RecordOpaqueScenePhase",
|
||||
PublicInstanceMethodFlags) != null;
|
||||
HasPublicContextRecordBeforeOpaqueInjection =
|
||||
contextType.GetMethod(
|
||||
"RecordBeforeOpaqueInjection",
|
||||
PublicInstanceMethodFlags) != null;
|
||||
HasPublicContextRecordShaderVectorFullscreenPass =
|
||||
contextType.GetMethod(
|
||||
"RecordShaderVectorFullscreenPass",
|
||||
PublicInstanceMethodFlags) != null;
|
||||
HasPublicRendererRecordOpaqueScenePhase =
|
||||
rendererContextType.GetMethod(
|
||||
"RecordOpaqueScenePhase",
|
||||
PublicInstanceMethodFlags) != null;
|
||||
HasPublicRendererRecordShaderVectorFullscreenPass =
|
||||
rendererContextType.GetMethod(
|
||||
"RecordShaderVectorFullscreenPass",
|
||||
PublicInstanceMethodFlags) != null;
|
||||
HasPublicCameraRequestContextHasDirectionalShadow =
|
||||
cameraRequestContextType.GetProperty(
|
||||
"hasDirectionalShadow",
|
||||
PublicInstanceMethodFlags) != null;
|
||||
HasPublicCameraRequestContextClearDirectionalShadow =
|
||||
cameraRequestContextType.GetMethod(
|
||||
"ClearDirectionalShadow",
|
||||
PublicInstanceMethodFlags) != null;
|
||||
HasPublicRendererCameraRequestContextHasDirectionalShadow =
|
||||
rendererCameraRequestContextType.GetProperty(
|
||||
"hasDirectionalShadow",
|
||||
PublicInstanceMethodFlags) != null;
|
||||
HasPublicRendererCameraRequestContextClearDirectionalShadow =
|
||||
rendererCameraRequestContextType.GetMethod(
|
||||
"ClearDirectionalShadow",
|
||||
PublicInstanceMethodFlags) != null;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user