First iteration of mesh assets

This commit is contained in:
2026-08-09 16:43:35 -04:00
parent 697579e72f
commit 30ea435b87
4 changed files with 32 additions and 4 deletions
+9
View File
@@ -0,0 +1,9 @@
#pragma once
#include <Core/Common/String.h>
#include <Graphics/MeshRenderer.h>
namespace Juliet
{
JULIET_API extern MeshID LoadMesh(String filename);
}
+5 -2
View File
@@ -63,9 +63,12 @@ namespace Juliet
JULIET_API void SetPointLightIntensity(LightID id, float intensity);
JULIET_API void ClearPointLights();
// Primitives
JULIET_API MeshID GetCubePrimitiveMeshID();
// Utils
[[nodiscard]] JULIET_API MeshID AddCube();
[[nodiscard]] JULIET_API MeshID AddQuad();
[[nodiscard]] JULIET_API MeshID CreateCubePrimitive();
[[nodiscard]] JULIET_API MeshID CreateQuadPrimitive();
JULIET_API void SetMeshTransform(MeshID id, const Matrix& transform);
#if ALLOW_SHADER_HOT_RELOAD
+6
View File
@@ -0,0 +1,6 @@
#include <Engine/Asset.h>
namespace Juliet
{
MeshID LoadMesh(String filename) {}
} // namespace Juliet
+12 -2
View File
@@ -32,6 +32,8 @@ namespace Juliet
};
MeshRendererState g_MeshRenderer;
MeshID CubePrimitiveMeshID = 0;
} // namespace
void InitializeMeshRenderer(NonNullPtr<Arena> arena)
@@ -40,6 +42,9 @@ namespace Juliet
g_MeshRenderer.Vertices.Create(arena JULIET_DEBUG_PARAM("Vertices"));
g_MeshRenderer.Indices.Create(arena JULIET_DEBUG_PARAM("Indices"));
g_MeshRenderer.PointLights.Create(arena JULIET_DEBUG_PARAM("PointLights"));
// Create primitives
CubePrimitiveMeshID = AddCube();
}
bool InitializeMeshRendererGraphics(NonNullPtr<GraphicsDevice> device, NonNullPtr<Window> window)
@@ -347,7 +352,12 @@ namespace Juliet
g_MeshRenderer.PointLights.Clear();
}
MeshID AddCube()
MeshID GetCubePrimitiveMeshID()
{
return CubePrimitiveMeshID;
}
MeshID CreateCubePrimitive()
{
Mesh result = {};
@@ -408,7 +418,7 @@ namespace Juliet
return id;
}
MeshID AddQuad()
MeshID CreateQuadPrimitive()
{
// Mesh result = {};