95 lines
2.9 KiB
C#
95 lines
2.9 KiB
C#
using XCEngine;
|
|
using XCEngine.Rendering;
|
|
|
|
namespace XCEngine.Rendering.Universal
|
|
{
|
|
public sealed class RendererPassQueueData
|
|
{
|
|
internal RendererPassQueueData(
|
|
int rendererIndex,
|
|
ulong framePlanId,
|
|
CameraData cameraData,
|
|
LightingData lightingData,
|
|
ShadowData shadowData,
|
|
EnvironmentData environmentData,
|
|
FinalColorData finalColorData)
|
|
{
|
|
this.rendererIndex = rendererIndex;
|
|
this.framePlanId = framePlanId;
|
|
this.cameraData = cameraData ?? CameraData.Default;
|
|
this.lightingData = lightingData ?? LightingData.Default;
|
|
this.shadowData = shadowData ?? ShadowData.Default;
|
|
this.environmentData =
|
|
environmentData ?? EnvironmentData.Default;
|
|
this.finalColorData =
|
|
finalColorData ?? FinalColorData.Default;
|
|
}
|
|
|
|
internal static RendererPassQueueData CreatePlanning(
|
|
int rendererIndex,
|
|
bool finalColorRequiresProcessing,
|
|
ulong framePlanId)
|
|
{
|
|
return new RendererPassQueueData(
|
|
rendererIndex,
|
|
framePlanId,
|
|
CameraData.Default,
|
|
LightingData.Default,
|
|
ShadowData.Default,
|
|
EnvironmentData.Default,
|
|
finalColorRequiresProcessing
|
|
? new FinalColorData(
|
|
CreatePlanningFinalColorSettings(),
|
|
true,
|
|
false)
|
|
: FinalColorData.Default);
|
|
}
|
|
|
|
internal static RendererPassQueueData FromRenderingData(
|
|
RenderingData renderingData)
|
|
{
|
|
if (renderingData == null)
|
|
{
|
|
return CreatePlanning(-1, false, 0UL);
|
|
}
|
|
|
|
return new RendererPassQueueData(
|
|
renderingData.rendererIndex,
|
|
renderingData.framePlanId,
|
|
renderingData.cameraData,
|
|
renderingData.lightingData,
|
|
renderingData.shadowData,
|
|
renderingData.environmentData,
|
|
renderingData.finalColorData);
|
|
}
|
|
|
|
public int rendererIndex { get; }
|
|
|
|
public ulong framePlanId { get; }
|
|
|
|
public CameraData cameraData { get; }
|
|
|
|
public LightingData lightingData { get; }
|
|
|
|
public ShadowData shadowData { get; }
|
|
|
|
public EnvironmentData environmentData { get; }
|
|
|
|
public FinalColorData finalColorData { get; }
|
|
|
|
private static FinalColorSettings
|
|
CreatePlanningFinalColorSettings()
|
|
{
|
|
FinalColorSettings settings =
|
|
FinalColorSettings.CreateDefault();
|
|
settings.finalColorScale =
|
|
new Vector4(
|
|
0.5f,
|
|
0.5f,
|
|
0.5f,
|
|
1.0f);
|
|
return settings;
|
|
}
|
|
}
|
|
}
|