Nullable fixes, use Texture2d resource for rendering directly.

This commit is contained in:
2024-01-21 17:34:49 +01:00
parent cfbf46860d
commit 5f4e32e2e0
10 changed files with 105 additions and 74 deletions

View File

@@ -9,8 +9,8 @@ namespace DaggerFramework.SceneGraph
public class Scene : IMainLoop
{
public Renderer Renderer { get => _renderer; set => _renderer = value; }
public InputHandler Input { get => _input; set => _input = value; }
public AudioBackend Audio => _audioBackend;
public InputHandler? Input { get => _input; set => _input = value; }
public AudioBackend? Audio => _audioBackend;
public ResourceManager ResourceManager => _resourceManager;
public double DeltaTime => _renderer.FrameTime;
@@ -26,9 +26,10 @@ namespace DaggerFramework.SceneGraph
_layers = new Dictionary<string, Layer>();
}
public Scene(Renderer renderer)
public Scene(Renderer renderer, ResourceManager resourceManager)
{
_renderer = renderer;
_resourceManager = resourceManager;
}
public void Init() => SetupRenderer();
@@ -36,7 +37,11 @@ namespace DaggerFramework.SceneGraph
{
foreach (var layer in _layers.Values)
{
layer.Input = _input;
if (_input is not null)
{
layer.Input = _input;
}
layer.Start();
}
}
@@ -48,7 +53,7 @@ namespace DaggerFramework.SceneGraph
layer.Value.Update(DeltaTime);
}
Audio.Update();
Audio?.Update();
}
public void AddLayer(string name, Layer layer)
@@ -84,10 +89,10 @@ namespace DaggerFramework.SceneGraph
Renderer.Initialize(new RendererSettings { Msaa = Msaa.Msaa4x, UseVSync = true });
}
private Dictionary<string, Layer> _layers;
private Dictionary<string, Layer> _layers = new();
private Renderer _renderer;
private AudioBackend _audioBackend;
private InputHandler _input;
private AudioBackend? _audioBackend;
private InputHandler? _input;
private ResourceManager _resourceManager;
}
}