76 lines
2.3 KiB
C#
76 lines
2.3 KiB
C#
using XCEngine;
|
|
using XCEngine.Rendering;
|
|
|
|
namespace XCEngine.Rendering.Universal
|
|
{
|
|
public class UniversalRenderPipelineAsset
|
|
: ScriptableRenderPipelineAsset
|
|
{
|
|
public ScriptableRendererData[] rendererDataList =
|
|
new ScriptableRendererData[]
|
|
{
|
|
new UniversalRendererData()
|
|
};
|
|
public int defaultRendererIndex = 0;
|
|
|
|
protected override ScriptableRenderPipeline CreatePipeline()
|
|
{
|
|
ScriptableRendererData resolvedRendererData =
|
|
ResolveDefaultRendererData();
|
|
return resolvedRendererData != null
|
|
? new UniversalRenderPipeline(resolvedRendererData)
|
|
: null;
|
|
}
|
|
|
|
protected override void ConfigureCameraRenderRequest(
|
|
CameraRenderRequestContext context)
|
|
{
|
|
ScriptableRendererData resolvedRendererData =
|
|
ResolveDefaultRendererData();
|
|
if (resolvedRendererData != null)
|
|
{
|
|
resolvedRendererData.ConfigureCameraRenderRequestInstance(
|
|
context);
|
|
}
|
|
}
|
|
|
|
protected override string GetPipelineRendererAssetKey()
|
|
{
|
|
ScriptableRendererData resolvedRendererData =
|
|
ResolveDefaultRendererData();
|
|
return resolvedRendererData != null
|
|
? resolvedRendererData.GetPipelineRendererAssetKeyInstance()
|
|
: string.Empty;
|
|
}
|
|
|
|
private ScriptableRendererData ResolveDefaultRendererData()
|
|
{
|
|
if (rendererDataList == null ||
|
|
rendererDataList.Length == 0)
|
|
{
|
|
rendererDataList =
|
|
new ScriptableRendererData[]
|
|
{
|
|
new UniversalRendererData()
|
|
};
|
|
defaultRendererIndex = 0;
|
|
}
|
|
|
|
if (defaultRendererIndex < 0 ||
|
|
defaultRendererIndex >= rendererDataList.Length)
|
|
{
|
|
defaultRendererIndex = 0;
|
|
}
|
|
|
|
if (rendererDataList[defaultRendererIndex] == null)
|
|
{
|
|
rendererDataList[defaultRendererIndex] =
|
|
new UniversalRendererData();
|
|
}
|
|
|
|
return rendererDataList[defaultRendererIndex];
|
|
}
|
|
}
|
|
}
|
|
|