Turn ModelRenderer and VoxelCache into traits

This commit is contained in:
Gustas
2023-09-19 18:40:57 +03:00
committed by Matthias Mailänder
parent d427072cc9
commit 686040a316
33 changed files with 481 additions and 469 deletions

View File

@@ -27,7 +27,7 @@ namespace OpenRA
public SpriteRenderer WorldSpriteRenderer { get; }
public RgbaSpriteRenderer WorldRgbaSpriteRenderer { get; }
public RgbaColorRenderer WorldRgbaColorRenderer { get; }
public ModelRenderer WorldModelRenderer { get; }
public IRenderer[] WorldRenderers = Array.Empty<IRenderer>();
public RgbaColorRenderer RgbaColorRenderer { get; }
public SpriteRenderer SpriteRenderer { get; }
public RgbaSpriteRenderer RgbaSpriteRenderer { get; }
@@ -92,7 +92,6 @@ namespace OpenRA
WorldSpriteRenderer = new SpriteRenderer(this, Context.CreateShader(combinedBindings));
WorldRgbaSpriteRenderer = new RgbaSpriteRenderer(WorldSpriteRenderer);
WorldRgbaColorRenderer = new RgbaColorRenderer(WorldSpriteRenderer);
WorldModelRenderer = new ModelRenderer(this, Context.CreateShader(new ModelShaderBindings()));
SpriteRenderer = new SpriteRenderer(this, Context.CreateShader(combinedBindings));
RgbaSpriteRenderer = new RgbaSpriteRenderer(SpriteRenderer);
RgbaColorRenderer = new RgbaColorRenderer(SpriteRenderer);
@@ -259,8 +258,6 @@ namespace OpenRA
if (lastWorldViewport != worldViewport)
{
WorldSpriteRenderer.SetViewportParams(worldSheet.Size, WorldDownscaleFactor, depthMargin, worldViewport.Location);
WorldModelRenderer.SetViewportParams();
lastWorldViewport = worldViewport;
}
@@ -308,7 +305,9 @@ namespace OpenRA
SpriteRenderer.SetPalette(currentPaletteTexture, palette.ColorShifts);
WorldSpriteRenderer.SetPalette(currentPaletteTexture, palette.ColorShifts);
WorldModelRenderer.SetPalette(currentPaletteTexture);
foreach (var r in WorldRenderers)
r.SetPalette(currentPaletteTexture);
}
public void EndFrame(IInputHandler inputHandler)
@@ -385,6 +384,16 @@ namespace OpenRA
}
}
public IFrameBuffer CreateFrameBuffer(Size s)
{
return Context.CreateFrameBuffer(s);
}
public IShader CreateShader(IShaderBindings bindings)
{
return Context.CreateShader(bindings);
}
public IVertexBuffer<T> CreateVertexBuffer<T>(int length) where T : struct
{
return Context.CreateVertexBuffer<T>(length);
@@ -514,7 +523,6 @@ namespace OpenRA
public void Dispose()
{
WorldModelRenderer.Dispose();
tempVertexBuffer.Dispose();
quadIndexBuffer.Dispose();
fontSheetBuilder?.Dispose();