First iteration of mesh assets
This commit is contained in:
@@ -0,0 +1,9 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <Core/Common/String.h>
|
||||||
|
#include <Graphics/MeshRenderer.h>
|
||||||
|
|
||||||
|
namespace Juliet
|
||||||
|
{
|
||||||
|
JULIET_API extern MeshID LoadMesh(String filename);
|
||||||
|
}
|
||||||
@@ -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
|
||||||
|
|||||||
@@ -0,0 +1,6 @@
|
|||||||
|
#include <Engine/Asset.h>
|
||||||
|
|
||||||
|
namespace Juliet
|
||||||
|
{
|
||||||
|
MeshID LoadMesh(String filename) {}
|
||||||
|
} // namespace Juliet
|
||||||
@@ -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 = {};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user