- File Application.cpp
Remove include GLFW for time function, replace with Platform later
Remove include GLFW for time function, replace with Platform later
- File Application.h
- Convert all files/classes in App directory to Muto::Engine namespace (create it)
- File Base.h
- Move Core classes and helpers in the Core directory to a Muto::Core namespace.
- File Components.h
- Move GLM Enable Experimental to Math.h and remove from here
- File Config.h
- : Implement Default Graphics API
- Member ExampleLayer::ExampleLayer ()
Abstract triangle rendering into Renderer2D (Similar to QuadVertex struct) (will use this shape for boids)
Abstract triangle rendering into Renderer2D (Similar to QuadVertex struct) (will use this shape for boids)
- File Layer.h
- Add layer priority system (maybe?)
- File Math2D.h
import structs from Muto for shape defines as wrappers for Gateware
Add Gateware as a dependency and include necessary headers for 2D math structures
Add 2D vector, matrix, and shape structures as needed for the engine's 2D math requirements.
- Namespace Muto
Abstract this class to OpenGL/DirectX/Vulkan etc ImGui layers
Remove GLFW include once abstracted
Remove GLFW include once abstracted
Abstract this class to OpenGL/DirectX/Vulkan etc ImGui layers
- Class Muto::Application
Update class to accept ApplicationSettings in constructor and verify its utility/use
Create a dedicated ResourceManager class to handle resource path resolution and management
- Member Muto::Application::Run ()
split the Run function into separate functions for update and render, and add a thread for each
Add a Layer render function and call it here for all Layers
Sort layers
Platform::GetTime()
split the Run function into separate functions for update and render, and add a thread for each
Platform::GetTime()
Sort layers
Add a Layer render function and call it here for all Layers
Add Layer rendering into the main loop
Add separate threads for rendering and updating
- Member Muto::ImGuiLayer::OnAttach () override
: Remove to openGL specific ImGui Implementation
: Remove to openGL specific ImGui Implementation
- Member Muto::ImGuiLayer::OnDetach () override
: Remove to openGL specific ImGui Implementation
: Remove to openGL specific ImGui Implementation
- Member Muto::Layer::OnRender ()
- add layer rendering into the application's render loop
- Class Muto::LayerStack
- Add layer priority system (maybe?)
- Class Muto::Log
- Rethink logging flow with Macros and possibly implement different loggers for different modules.
- Struct Muto::QuadVertex
move to Geometry dir
move to Geometry dir
- Class Muto::RenderAPI
Add abstraction layers (similar to OpenGL) for Vulkan and DirectX and implement corresponding RenderAPI subclasses for each API.
Add NVRHI as an additional API for DirectX and Vulkan to simplify cross-platform rendering support.
- Class Muto::Renderer2D
- Change draw func names to be overloaded DrawQuad and remove the "WithTexture" suffix, as the presence of a texture parameter should be sufficient to determine the type of quad being drawn. The current naming convention is a holdover from when the renderer had separate functions for textured and non-textured quads.
- Member Muto::Renderer2D::BeginScene (const OrthographicCamera &camera)
- Remove once we have a proper scene system
- Member Muto::Renderer2D::Flush ()
Remove the OpenGL-specific code from here
Remove the OpenGL-specific code from here
- Struct Muto::Renderer2DData
ensure that true system limits for texture slots are respected, rather than hardcoding a value
ensure that true system limits for texture slots are respected, rather than hardcoding a value
- Member Muto::Renderer::BeginScene (OrthographicCamera &camera)
- Support for other camera types.
- Member Muto::Renderer::Submit (const Ref< Shader > &shader, const Ref< VertexArray > &vertexArray, const glm::mat4 &transform=glm::mat4(1.0f))
- Set up a command list to encapsulate this for draw order control
- Class Muto::ResourceManager
- Implement resource management functionality, including loading, caching, and unloading resources.
- Class Muto::Scene
- Create a friend class SceneRenderer;
- Member Muto::Shader::Create (const std::string &filepath)
- Adjust function to return a MutoResult and have the shader as an out parameter, to allow for error handling during shader compilation.
- Member Muto::Shader::Create (const std::string &name, const std::string &vertexSrc, const std::string &fragmentSrc)
- Adjust function to return a MutoResult and have the shader as an out parameter, to allow for error handling during shader compilation.
- Class Muto::Window
- Add Window mode functionality
- Class Orthographic
- Inherit the Camera class
- File OrthographicCameraController.h
- Document the OrthographicCameraController class and its methods.
- File Renderer.cpp
Remove temporary include of OpenGLShader. Should be able to tell the type from our api and cast accordingly, but for now this is fine since we only have one API
Remove temporary include of OpenGLShader. Should be able to tell the type from our api and cast accordingly, but for now this is fine since we only have one API
- File Timer.h
- Finish timer class
- File Window.h
- Add support for different window modes (windowed, fullscreen, borderless).
- File WindowsPlatformUtils.cpp
Move GLFW expose native win32 define to platform detection
Move GLFW expose native win32 define to platform detection