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 SetPointLightIntensity(LightID id, float intensity);
JULIET_API void ClearPointLights(); JULIET_API void ClearPointLights();
// Primitives
JULIET_API MeshID GetCubePrimitiveMeshID();
// Utils // Utils
[[nodiscard]] JULIET_API MeshID AddCube(); [[nodiscard]] JULIET_API MeshID CreateCubePrimitive();
[[nodiscard]] JULIET_API MeshID AddQuad(); [[nodiscard]] JULIET_API MeshID CreateQuadPrimitive();
JULIET_API void SetMeshTransform(MeshID id, const Matrix& transform); JULIET_API void SetMeshTransform(MeshID id, const Matrix& transform);
#if ALLOW_SHADER_HOT_RELOAD #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; MeshRendererState g_MeshRenderer;
MeshID CubePrimitiveMeshID = 0;
} // namespace } // namespace
void InitializeMeshRenderer(NonNullPtr<Arena> arena) void InitializeMeshRenderer(NonNullPtr<Arena> arena)
@@ -40,6 +42,9 @@ namespace Juliet
g_MeshRenderer.Vertices.Create(arena JULIET_DEBUG_PARAM("Vertices")); g_MeshRenderer.Vertices.Create(arena JULIET_DEBUG_PARAM("Vertices"));
g_MeshRenderer.Indices.Create(arena JULIET_DEBUG_PARAM("Indices")); g_MeshRenderer.Indices.Create(arena JULIET_DEBUG_PARAM("Indices"));
g_MeshRenderer.PointLights.Create(arena JULIET_DEBUG_PARAM("PointLights")); g_MeshRenderer.PointLights.Create(arena JULIET_DEBUG_PARAM("PointLights"));
// Create primitives
CubePrimitiveMeshID = AddCube();
} }
bool InitializeMeshRendererGraphics(NonNullPtr<GraphicsDevice> device, NonNullPtr<Window> window) bool InitializeMeshRendererGraphics(NonNullPtr<GraphicsDevice> device, NonNullPtr<Window> window)
@@ -347,7 +352,12 @@ namespace Juliet
g_MeshRenderer.PointLights.Clear(); g_MeshRenderer.PointLights.Clear();
} }
MeshID AddCube() MeshID GetCubePrimitiveMeshID()
{
return CubePrimitiveMeshID;
}
MeshID CreateCubePrimitive()
{ {
Mesh result = {}; Mesh result = {};
@@ -408,7 +418,7 @@ namespace Juliet
return id; return id;
} }
MeshID AddQuad() MeshID CreateQuadPrimitive()
{ {
// Mesh result = {}; // Mesh result = {};