Align SRP boundaries and editor windowing
This commit is contained in:
@@ -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",
|
||||
|
||||
Reference in New Issue
Block a user