feat(scripting): add managed srp base api
This commit is contained in:
@@ -101,6 +101,7 @@ endforeach()
|
||||
set(XCENGINE_SCRIPT_CORE_SOURCES
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/XCEngine.ScriptCore/Behaviour.cs
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/XCEngine.ScriptCore/Camera.cs
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/XCEngine.ScriptCore/CameraFrameStage.cs
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/XCEngine.ScriptCore/Component.cs
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/XCEngine.ScriptCore/Debug.cs
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/XCEngine.ScriptCore/ForceMode.cs
|
||||
@@ -119,6 +120,8 @@ set(XCENGINE_SCRIPT_CORE_SOURCES
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/XCEngine.ScriptCore/Quaternion.cs
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/XCEngine.ScriptCore/RaycastHit.cs
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/XCEngine.ScriptCore/RenderPipelineAsset.cs
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/XCEngine.ScriptCore/ScriptableRenderPipeline.cs
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/XCEngine.ScriptCore/ScriptableRenderPipelineAsset.cs
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/XCEngine.ScriptCore/Rigidbody.cs
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/XCEngine.ScriptCore/SerializeField.cs
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/XCEngine.ScriptCore/Space.cs
|
||||
|
||||
@@ -2,13 +2,19 @@ using XCEngine;
|
||||
|
||||
namespace Gameplay
|
||||
{
|
||||
public sealed class RenderPipelineApiProbeAsset : RenderPipelineAsset
|
||||
public sealed class LegacyRenderPipelineApiProbeAsset : RenderPipelineAsset
|
||||
{
|
||||
}
|
||||
|
||||
public sealed class RenderPipelineApiProbeAsset : ScriptableRenderPipelineAsset
|
||||
{
|
||||
}
|
||||
|
||||
public sealed class RenderPipelineApiProbe : MonoBehaviour
|
||||
{
|
||||
public bool InitialTypeWasNull;
|
||||
public bool InvalidSelectionRejected;
|
||||
public bool InvalidSelectionMentionsScriptableBase;
|
||||
public bool SelectionRoundTripSucceeded;
|
||||
public string SelectedPipelineTypeName = string.Empty;
|
||||
|
||||
@@ -16,6 +22,19 @@ namespace Gameplay
|
||||
{
|
||||
InitialTypeWasNull = GraphicsSettings.renderPipelineAssetType == null;
|
||||
|
||||
try
|
||||
{
|
||||
GraphicsSettings.renderPipelineAssetType =
|
||||
typeof(LegacyRenderPipelineApiProbeAsset);
|
||||
InvalidSelectionRejected = false;
|
||||
}
|
||||
catch (System.ArgumentException ex)
|
||||
{
|
||||
InvalidSelectionRejected = true;
|
||||
InvalidSelectionMentionsScriptableBase =
|
||||
ex.Message.Contains("ScriptableRenderPipelineAsset");
|
||||
}
|
||||
|
||||
GraphicsSettings.renderPipelineAssetType =
|
||||
typeof(RenderPipelineApiProbeAsset);
|
||||
System.Type selectedType = GraphicsSettings.renderPipelineAssetType;
|
||||
|
||||
15
managed/XCEngine.ScriptCore/CameraFrameStage.cs
Normal file
15
managed/XCEngine.ScriptCore/CameraFrameStage.cs
Normal file
@@ -0,0 +1,15 @@
|
||||
namespace XCEngine
|
||||
{
|
||||
public enum CameraFrameStage : byte
|
||||
{
|
||||
PreScenePasses = 0,
|
||||
ShadowCaster = 1,
|
||||
DepthOnly = 2,
|
||||
MainScene = 3,
|
||||
PostProcess = 4,
|
||||
FinalOutput = 5,
|
||||
ObjectId = 6,
|
||||
PostScenePasses = 7,
|
||||
OverlayPasses = 8
|
||||
}
|
||||
}
|
||||
@@ -20,10 +20,10 @@ namespace XCEngine
|
||||
set
|
||||
{
|
||||
if (value != null &&
|
||||
!typeof(RenderPipelineAsset).IsAssignableFrom(value))
|
||||
!typeof(ScriptableRenderPipelineAsset).IsAssignableFrom(value))
|
||||
{
|
||||
throw new ArgumentException(
|
||||
"GraphicsSettings.renderPipelineAssetType must derive from RenderPipelineAsset.",
|
||||
"GraphicsSettings.renderPipelineAssetType must derive from ScriptableRenderPipelineAsset.",
|
||||
nameof(value));
|
||||
}
|
||||
|
||||
|
||||
21
managed/XCEngine.ScriptCore/ScriptableRenderPipeline.cs
Normal file
21
managed/XCEngine.ScriptCore/ScriptableRenderPipeline.cs
Normal file
@@ -0,0 +1,21 @@
|
||||
namespace XCEngine
|
||||
{
|
||||
public abstract class ScriptableRenderPipeline : Object
|
||||
{
|
||||
protected ScriptableRenderPipeline()
|
||||
{
|
||||
}
|
||||
|
||||
protected internal virtual bool SupportsStageRenderGraph(
|
||||
CameraFrameStage stage)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
protected internal virtual bool RecordStageRenderGraph(
|
||||
CameraFrameStage stage)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
14
managed/XCEngine.ScriptCore/ScriptableRenderPipelineAsset.cs
Normal file
14
managed/XCEngine.ScriptCore/ScriptableRenderPipelineAsset.cs
Normal file
@@ -0,0 +1,14 @@
|
||||
namespace XCEngine
|
||||
{
|
||||
public abstract class ScriptableRenderPipelineAsset : RenderPipelineAsset
|
||||
{
|
||||
protected ScriptableRenderPipelineAsset()
|
||||
{
|
||||
}
|
||||
|
||||
protected internal virtual ScriptableRenderPipeline CreatePipeline()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user