Revert "feat(render): Campaign V slice V4d-2 - move terrain onto the RHI"
This reverts commit b064668b63.
This commit is contained in:
parent
b064668b63
commit
ad61f250fb
7 changed files with 553 additions and 496 deletions
|
|
@ -32,6 +32,7 @@ internal sealed record WorldRenderFoundation(
|
|||
string ShadersDirectory,
|
||||
BindlessSupport Bindless,
|
||||
TerrainAtlas TerrainAtlas,
|
||||
Shader TerrainShader,
|
||||
SceneLightingUboBinding SceneLighting,
|
||||
DebugLineRenderer DebugLines,
|
||||
BitmapFont? DebugFont,
|
||||
|
|
@ -61,6 +62,7 @@ internal sealed record WorldRenderDependencies(
|
|||
internal interface IGameWindowWorldRenderPublication
|
||||
{
|
||||
void PublishBindlessSupport(BindlessSupport value);
|
||||
void PublishTerrainShader(Shader value);
|
||||
void PublishSceneLighting(SceneLightingUboBinding value);
|
||||
void PublishDebugLines(DebugLineRenderer value);
|
||||
void PublishHudResources(BitmapFont font, TextRenderer text);
|
||||
|
|
@ -87,6 +89,7 @@ internal interface IWorldRenderCompositionFactory
|
|||
IDatReaderWriter dats,
|
||||
BindlessSupport bindless);
|
||||
void SetTerrainAnisotropic(TerrainAtlas atlas, int level);
|
||||
Shader CreateTerrainShader(GL gl, string shadersDirectory);
|
||||
SceneLightingUboBinding CreateSceneLighting(GL gl);
|
||||
DebugLineRenderer CreateDebugLines(
|
||||
AcDream.App.Rendering.Gpu.IGpuDevice device,
|
||||
|
|
@ -100,8 +103,8 @@ internal interface IWorldRenderCompositionFactory
|
|||
string shadersDirectory);
|
||||
TerrainModernRenderer CreateTerrain(
|
||||
GL gl,
|
||||
AcDream.App.Rendering.Gpu.IGpuDevice device,
|
||||
ICurrentGpuFrameSource frameSource,
|
||||
BindlessSupport bindless,
|
||||
Shader shader,
|
||||
TerrainAtlas atlas,
|
||||
IGpuResourceRetirementQueue retirement);
|
||||
WorldTerrainBuildContext CreateTerrainBuildContext(
|
||||
|
|
@ -212,6 +215,13 @@ internal sealed class RetailWorldRenderCompositionFactory
|
|||
public void SetTerrainAnisotropic(TerrainAtlas atlas, int level) =>
|
||||
atlas.SetAnisotropic(level);
|
||||
|
||||
public Shader CreateTerrainShader(GL gl, string shadersDirectory) =>
|
||||
new(
|
||||
gl,
|
||||
Path.Combine(shadersDirectory, "terrain_modern.vert"),
|
||||
Path.Combine(shadersDirectory, "terrain_modern.frag"),
|
||||
includeCommonPreamble: true);
|
||||
|
||||
public SceneLightingUboBinding CreateSceneLighting(GL gl) => new(gl);
|
||||
|
||||
public DebugLineRenderer CreateDebugLines(
|
||||
|
|
@ -234,11 +244,11 @@ internal sealed class RetailWorldRenderCompositionFactory
|
|||
|
||||
public TerrainModernRenderer CreateTerrain(
|
||||
GL gl,
|
||||
AcDream.App.Rendering.Gpu.IGpuDevice device,
|
||||
ICurrentGpuFrameSource frameSource,
|
||||
BindlessSupport bindless,
|
||||
Shader shader,
|
||||
TerrainAtlas atlas,
|
||||
IGpuResourceRetirementQueue retirement) =>
|
||||
new(gl, device, frameSource, atlas, retirement);
|
||||
new(gl, bindless, shader, atlas, retirement);
|
||||
|
||||
public WorldTerrainBuildContext CreateTerrainBuildContext(
|
||||
uint initialCenterLandblockId,
|
||||
|
|
@ -386,6 +396,7 @@ internal enum WorldRenderCompositionPoint
|
|||
EnvironmentInitialized,
|
||||
BindlessPublished,
|
||||
TerrainAtlasAcquired,
|
||||
TerrainShaderPublished,
|
||||
SceneLightingPublished,
|
||||
DebugLinesPublished,
|
||||
DebugFontCreated,
|
||||
|
|
@ -472,9 +483,12 @@ internal sealed class WorldRenderCompositionPhase
|
|||
AppContext.BaseDirectory,
|
||||
"Rendering",
|
||||
"Shaders");
|
||||
// Campaign V slice V4d: terrain no longer needs a Shader composed
|
||||
// for it — its IGpuPipeline compiles terrain_modern itself, from
|
||||
// the same sources with the same shared preamble.
|
||||
Shader terrainShader = AcquireAndPublish(
|
||||
scope,
|
||||
"terrain shader",
|
||||
() => _factory.CreateTerrainShader(gl, shadersDirectory),
|
||||
_publication.PublishTerrainShader,
|
||||
WorldRenderCompositionPoint.TerrainShaderPublished);
|
||||
SceneLightingUboBinding sceneLighting = AcquireAndPublish(
|
||||
scope,
|
||||
"scene lighting",
|
||||
|
|
@ -499,8 +513,8 @@ internal sealed class WorldRenderCompositionPhase
|
|||
"terrain renderer",
|
||||
() => _factory.CreateTerrain(
|
||||
gl,
|
||||
_dependencies.GpuDevice,
|
||||
_dependencies.GpuFrameSource,
|
||||
bindless,
|
||||
terrainShader,
|
||||
terrainAtlas,
|
||||
_dependencies.ResourceRetirement),
|
||||
_publication.PublishTerrain,
|
||||
|
|
@ -573,6 +587,7 @@ internal sealed class WorldRenderCompositionPhase
|
|||
shadersDirectory,
|
||||
bindless,
|
||||
terrainAtlas,
|
||||
terrainShader,
|
||||
sceneLighting,
|
||||
debugLines,
|
||||
debugFont,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue