Align SRP boundaries and editor windowing

This commit is contained in:
2026-04-26 17:14:32 +08:00
parent a8256b05cd
commit b8599a8aff
38 changed files with 696 additions and 650 deletions

View File

@@ -109,6 +109,54 @@ namespace Gameplay
public bool HasRenderPassEventUnityNumericOrder;
public bool HasRenderPassEventEngineExtensionOrder;
private static bool HasMethod(
System.Type type,
string name,
BindingFlags flags)
{
if (type == null)
{
return false;
}
MethodInfo[] methods = type.GetMethods(flags);
for (int i = 0; i < methods.Length; ++i)
{
MethodInfo method = methods[i];
if (method != null &&
method.Name == name)
{
return true;
}
}
return false;
}
private static bool HasProperty(
System.Type type,
string name,
BindingFlags flags)
{
if (type == null)
{
return false;
}
PropertyInfo[] properties = type.GetProperties(flags);
for (int i = 0; i < properties.Length; ++i)
{
PropertyInfo property = properties[i];
if (property != null &&
property.Name == name)
{
return true;
}
}
return false;
}
public void Start()
{
const BindingFlags PublicInstanceMethodFlags =
@@ -334,38 +382,38 @@ namespace Gameplay
HasScriptableObjectType =
scriptableObjectType != null;
HasScriptableObjectCreateInstance =
scriptableObjectType != null &&
scriptableObjectType.GetMethod(
HasMethod(
scriptableObjectType,
"CreateInstance",
BindingFlags.Static |
BindingFlags.Public) != null;
BindingFlags.Public);
HasRenderPipelineAssetScriptableObjectBase =
scriptableObjectType != null &&
pipelineAssetType.BaseType == scriptableObjectType;
HasPlanningContextType =
contextType.Assembly.GetType(
"XCEngine.Rendering.ScriptableRenderPipelinePlanningContext") != null;
typeof(ScriptableRenderPipelinePlanningContext) != null;
HasRendererFeatureConfigureCameraFramePlan =
rendererFeatureType.GetMethod(
HasMethod(
rendererFeatureType,
"ConfigureCameraFramePlan",
BindingFlags.Instance |
BindingFlags.Public |
BindingFlags.NonPublic) != null;
BindingFlags.NonPublic);
HasRendererRecordingContextType =
System.Type.GetType(
"XCEngine.Rendering.Universal.RendererRecordingContext, XCEngine.RenderPipelines.Universal") != null;
universalAssembly.GetType(
"XCEngine.Rendering.Universal.RendererRecordingContext") != null;
HasRendererCameraRequestContextType =
System.Type.GetType(
"XCEngine.Rendering.Universal.RendererCameraRequestContext, XCEngine.RenderPipelines.Universal") != null;
universalAssembly.GetType(
"XCEngine.Rendering.Universal.RendererCameraRequestContext") != null;
HasRendererBackedRenderPipelineAssetType =
System.Type.GetType(
"XCEngine.Rendering.Universal.RendererBackedRenderPipelineAsset, XCEngine.RenderPipelines.Universal") != null;
universalAssembly.GetType(
"XCEngine.Rendering.Universal.RendererBackedRenderPipelineAsset") != null;
HasRendererBackedRenderPipelineType =
System.Type.GetType(
"XCEngine.Rendering.Universal.RendererBackedRenderPipeline, XCEngine.RenderPipelines.Universal") != null;
universalAssembly.GetType(
"XCEngine.Rendering.Universal.RendererBackedRenderPipeline") != null;
HasRendererDrivenRenderPipelineType =
System.Type.GetType(
"XCEngine.Rendering.Universal.RendererDrivenRenderPipeline, XCEngine.RenderPipelines.Universal") != null;
universalAssembly.GetType(
"XCEngine.Rendering.Universal.RendererDrivenRenderPipeline") != null;
HasRendererDataScriptableObjectBase =
scriptableObjectType != null &&
rendererDataType.BaseType == scriptableObjectType;
@@ -373,31 +421,36 @@ namespace Gameplay
scriptableObjectType != null &&
rendererFeatureType.BaseType == scriptableObjectType;
HasRendererDataSetupRenderer =
rendererDataType.GetMethod(
HasMethod(
rendererDataType,
"SetupRenderer",
BindingFlags.Instance |
BindingFlags.NonPublic) != null;
BindingFlags.NonPublic);
HasRendererDataSetDirty =
rendererDataType.GetMethod(
HasMethod(
rendererDataType,
"SetDirty",
BindingFlags.Instance |
BindingFlags.NonPublic) != null;
BindingFlags.NonPublic);
HasRendererDataIsInvalidated =
rendererDataType.GetProperty(
HasProperty(
rendererDataType,
"isInvalidated",
BindingFlags.Instance |
BindingFlags.NonPublic |
BindingFlags.Public) != null;
BindingFlags.Public);
HasRendererSupportsRendererRecording =
rendererType.GetMethod(
HasMethod(
rendererType,
"SupportsRendererRecording",
BindingFlags.Instance |
BindingFlags.NonPublic) != null;
BindingFlags.NonPublic);
HasRendererRecordRenderer =
rendererType.GetMethod(
HasMethod(
rendererType,
"RecordRenderer",
BindingFlags.Instance |
BindingFlags.NonPublic) != null;
BindingFlags.NonPublic);
HasPublicRendererSupportsStageRenderGraph =
rendererType.GetMethod(
"SupportsStageRenderGraph",