Todo List
- Member helios::app::Application::~Application ()=default
free resource allocations from renderingDevice, window and InputManager
- Class helios::core::Transform
- Class helios::engine::game::InputSnapshot
-
Extend to support multiple gamepads, keyboard, and mouse input.
Add timestamp to enable precise replay and network synchronization.
- Member helios::engine::game::systems::gameplay::ProjectilePoolSystem::spawn (helios::math::vec3f position, helios::math::vec3f muzzleVelocity, helios::math::vec3f aimDir, helios::math::vec3f sourceVelocity) noexcept
the ProjectilePoolSystem assumes to shoot in 2d, projected on the xy plane. This has to be configured later on.
- Member helios::engine::game::systems::physics::HeadingSystem::update (helios::engine::game::UpdateContext &updateContext) noexcept override
- Member helios::engine::tooling::FramePacer::sync ()
Implement hybrid spinning for the last millisecond of the wait time to improve timing precision and mitigate OS scheduler wake-up latency.
- Class helios::event::Event
can we reset the value for Guids in between frames, if events are guaranteed to be dispatched and processed in between frames?
- Class helios::ext::glfw::window::GLFWWindow
- Member helios::ext::opengl::rendering::OpenGLDevice::init () override
- Member helios::math::mat4< T >::same (const mat4< T > &rgt) const
account for abs (values close to zero) and rel (larger values), move EPSILON to global constant
- Member helios::math::vec2< T >::same (const vec2< T > &rgt, T epsilon=0.0001) const
account for abs (values close to zero) and rel (larger values), move epsilon to global constant?
- Member helios::math::vec3< T >::same (const vec3< T > &rgt, T epsilon=0.0001) const
account for abs (values close to zero) and rel (larger values), move epsilon to global constant?
- Member helios::rendering::model::Mesh::init ()=0
- Member helios::rendering::RenderPassFactory::makeRenderCommand (const helios::scene::SnapshotItem &snapshotItem) const noexcept
future versions might want to use a FactoryMethod in RenderCommand that takes a SnapshotItem and creates a RenderCommand from it (e.g. `RenderCommand::fromSnapshotItem()`); or a Factory `RenderCommandBuilder()` with fluent configuration `.withShader().withMesh().build();`
- Member helios::rendering::RenderQueue::add (std::unique_ptr< const helios::rendering::RenderCommand > renderCommand)
- Class helios::rendering::RenderTarget
This implementation currently represents only the **default framebuffer**. Future extensions should allow it to represent arbitrary framebuffer objects (FBOs), using indices.
- Member helios::rendering::RenderTarget::setSize (unsigned int width, unsigned int height) noexcept
A LayoutManager could be introduced to manage the arrangement of multiple viewports.
- Class helios::rendering::shader::UniformValueMap
-
UniformMap must allow only one index for all data structures, i.e. if map_[semantics] contains a mat4f, other types should not be allowed for the same semantics.
UniformValueMaps should be scoped, e.g. per frame (world matrix, projection, view...), per material (colors, emissive...), per object (world matrix...), which allows for better handling of assigning uniforms: per-frame values change once per frame, while per-object values change per object.
- Member helios::rendering::Viewport::setRenderTarget (const helios::rendering::RenderTarget *renderTarget, ViewportKey key) noexcept
The Viewport should observe the RenderTarget for state changes (e.g., resize).
- Class helios::scene::FrustumCullingStrategy
The returned list should be considered "as is" for now: Each entry in the list is a single renderable entity to consider. Its child nodes (i.e. the sub tree for which this node is the root) should _not_ be automatically considered for rendering. Later iterations should probably use an individual struct that provides a hint whether for a given node a whole subtree should be considered, saving time for culling and memory when constructing the list.
- Member helios::scene::Scene::createSnapshot (const std::shared_ptr< const rendering::Viewport > &viewport) const
This should be refactored into a factory to prevent domain leakage between Scene and Rendering.
- Member helios::scene::SceneNode::SceneNode () noexcept
explicitly implement move (assignment) constructor if required, since we have deleted the copy constructors
- Struct helios::scene::SnapshotItem
we're intentionally preferring stability over performance by using weak_ptr instead of raw pointers. This leaves room for (performance) improvements in later iterations. The Renderable as a weak pointer can later on be further implemented into a pure DTO, storing only scalar values that get send directly to the underlying rendering backend (e.g. vaos, vbos etc.).
Generated via doxygen2docusaurus 2.0.0 by Doxygen 1.15.0.