refactor(srp): move renderer request helpers out of core
This commit is contained in:
@@ -800,24 +800,38 @@ namespace Gameplay
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class ManagedCameraRequestConfiguredRenderPipelineProbeAsset
|
||||
: ScriptableRenderPipelineAsset
|
||||
internal sealed class ManagedCameraRequestConfiguredRendererData
|
||||
: ScriptableRendererData
|
||||
{
|
||||
protected override ScriptableRenderPipeline CreatePipeline()
|
||||
protected override ScriptableRenderer CreateRenderer()
|
||||
{
|
||||
return new ManagedRenderPipelineProbe();
|
||||
return new ProbeSceneRenderer();
|
||||
}
|
||||
|
||||
protected override void ConfigureCameraRenderRequest(
|
||||
ScriptableRenderPipelineCameraRequestContext context)
|
||||
RendererCameraRequestContext context)
|
||||
{
|
||||
if (context != null && context.hasDirectionalShadow)
|
||||
if (context != null &&
|
||||
context.hasDirectionalShadow)
|
||||
{
|
||||
context.ClearDirectionalShadow();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class ManagedCameraRequestConfiguredRenderPipelineProbeAsset
|
||||
: RendererBackedRenderPipelineAsset
|
||||
{
|
||||
private readonly ManagedCameraRequestConfiguredRendererData
|
||||
m_rendererData =
|
||||
new ManagedCameraRequestConfiguredRendererData();
|
||||
|
||||
protected override ScriptableRendererData GetRendererData()
|
||||
{
|
||||
return m_rendererData;
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class ManagedRenderContextCameraDataProbeAsset
|
||||
: ScriptableRenderPipelineAsset
|
||||
{
|
||||
|
||||
@@ -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