Start of 3d renderer integration

This commit is contained in:
Simon Lübeß
2022-05-04 18:38:59 +02:00
parent 412d0ea965
commit 2817c5b1a1
16 changed files with 733 additions and 14 deletions
+16 -2
View File
@@ -52,6 +52,7 @@ namespace GlitchyEngine.World
Camera* primaryCamera = null;
Matrix primaryCameraTransform = default;
RenderTarget2D renderTarget = null;
for (var (entity, transform, camera) in _ecsWorld.Enumerate<TransformComponent, CameraComponent>())
{
@@ -59,12 +60,23 @@ namespace GlitchyEngine.World
{
primaryCamera = &camera.Camera;
primaryCameraTransform = transform.WorldTransform;
renderTarget = camera.RenderTarget..AddRef();
}
}
// Sprite renderer
if (primaryCamera != null)
{
{
// 3D render
Renderer.BeginScene(*primaryCamera, primaryCameraTransform, renderTarget);
for (var (entity, transform, mesh, meshRenderer) in _ecsWorld.Enumerate<TransformComponent, MeshComponent, MeshRendererComponent>())
{
Renderer.Submit(mesh.Mesh, meshRenderer.Material, transform.WorldTransform);
}
Renderer.EndScene();
// Sprite renderer
Renderer2D.BeginScene(*primaryCamera, primaryCameraTransform);
for (var (entity, transform, sprite) in _ecsWorld.Enumerate<TransformComponent, SpriterRendererComponent>())
@@ -73,6 +85,8 @@ namespace GlitchyEngine.World
}
Renderer2D.EndScene();
renderTarget?.ReleaseRef();
}
}