From c6396a21935b48f11a90b0526e129f48db6a4669 Mon Sep 17 00:00:00 2001 From: johndoe6345789 Date: Fri, 9 Jan 2026 21:55:32 +0000 Subject: [PATCH] ROADMAP.md --- .../impl/frame_workflow_step_registrar.hpp | 40 +++++++++++++++++++ src/services/impl/workflow_frame_gui_step.cpp | 27 +++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 src/services/impl/frame_workflow_step_registrar.hpp create mode 100644 src/services/impl/workflow_frame_gui_step.cpp diff --git a/src/services/impl/frame_workflow_step_registrar.hpp b/src/services/impl/frame_workflow_step_registrar.hpp new file mode 100644 index 0000000..523606c --- /dev/null +++ b/src/services/impl/frame_workflow_step_registrar.hpp @@ -0,0 +1,40 @@ +#pragma once + +#include "../interfaces/i_logger.hpp" +#include "../interfaces/i_workflow_step_registry.hpp" +#include "../interfaces/workflow_definition.hpp" + +#include + +namespace sdl3cpp::services { +class IAudioService; +class IInputService; +class IPhysicsService; +class IRenderCoordinatorService; +class ISceneService; +} + +namespace sdl3cpp::services::impl { + +class FrameWorkflowStepRegistrar { +public: + FrameWorkflowStepRegistrar(std::shared_ptr logger, + std::shared_ptr audioService, + std::shared_ptr inputService, + std::shared_ptr physicsService, + std::shared_ptr sceneService, + std::shared_ptr renderService); + + void RegisterUsedSteps(const WorkflowDefinition& workflow, + const std::shared_ptr& registry) const; + +private: + std::shared_ptr logger_; + std::shared_ptr audioService_; + std::shared_ptr inputService_; + std::shared_ptr physicsService_; + std::shared_ptr sceneService_; + std::shared_ptr renderService_; +}; + +} // namespace sdl3cpp::services::impl diff --git a/src/services/impl/workflow_frame_gui_step.cpp b/src/services/impl/workflow_frame_gui_step.cpp new file mode 100644 index 0000000..b435b1e --- /dev/null +++ b/src/services/impl/workflow_frame_gui_step.cpp @@ -0,0 +1,27 @@ +#include "workflow_frame_gui_step.hpp" + +#include + +namespace sdl3cpp::services::impl { + +WorkflowFrameGuiStep::WorkflowFrameGuiStep(std::shared_ptr inputService, + std::shared_ptr logger) + : inputService_(std::move(inputService)), + logger_(std::move(logger)) {} + +std::string WorkflowFrameGuiStep::GetPluginId() const { + return "frame.gui"; +} + +void WorkflowFrameGuiStep::Execute(const WorkflowStepDefinition&, + WorkflowContext&) { + if (!inputService_) { + throw std::runtime_error("frame.gui requires an IInputService"); + } + inputService_->UpdateGuiInput(); + if (logger_) { + logger_->Trace("WorkflowFrameGuiStep", "Execute", "", "GUI input dispatched"); + } +} + +} // namespace sdl3cpp::services::impl