Muto 0.0.1
Cross-Platform Application Template
GitHub Repo | Muto Updates | Muto's Author
Loading...
Searching...
No Matches
Todo List
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