diff --git a/Juliet/include/Engine/Asset.h b/Juliet/include/Engine/Asset.h new file mode 100644 index 0000000..ea8e633 --- /dev/null +++ b/Juliet/include/Engine/Asset.h @@ -0,0 +1,9 @@ +#pragma once + +#include +#include + +namespace Juliet +{ + JULIET_API extern MeshID LoadMesh(String filename); +} diff --git a/Juliet/include/Graphics/MeshRenderer.h b/Juliet/include/Graphics/MeshRenderer.h index cff66f6..9dfc1b0 100644 --- a/Juliet/include/Graphics/MeshRenderer.h +++ b/Juliet/include/Graphics/MeshRenderer.h @@ -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 diff --git a/Juliet/src/Engine/Asset.cpp b/Juliet/src/Engine/Asset.cpp new file mode 100644 index 0000000..86de235 --- /dev/null +++ b/Juliet/src/Engine/Asset.cpp @@ -0,0 +1,6 @@ +#include + +namespace Juliet +{ + MeshID LoadMesh(String filename) {} +} // namespace Juliet diff --git a/Juliet/src/Graphics/MeshRenderer.cpp b/Juliet/src/Graphics/MeshRenderer.cpp index a4d2119..9aac5e6 100644 --- a/Juliet/src/Graphics/MeshRenderer.cpp +++ b/Juliet/src/Graphics/MeshRenderer.cpp @@ -32,6 +32,8 @@ namespace Juliet }; MeshRendererState g_MeshRenderer; + + MeshID CubePrimitiveMeshID = 0; } // namespace void InitializeMeshRenderer(NonNullPtr 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 device, NonNullPtr 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 = {};