From 273f1e2006c8e2706730f1e0f95e13e025cc2f88 Mon Sep 17 00:00:00 2001 From: light7734 Date: Thu, 6 Nov 2025 19:16:37 +0330 Subject: [PATCH] wip: convert from include style to module import style :D --- modules/input/CMakeLists.txt | 13 ++++++++++--- modules/input/codes.cppm | 29 +++-------------------------- modules/input/components.cppm | 22 ++++++++++------------ modules/input/events.cppm | 27 ++++++++++++--------------- modules/input/mouse_codes.cppm | 0 modules/input/system.cppm | 32 ++++++++++++++------------------ 6 files changed, 49 insertions(+), 74 deletions(-) delete mode 100644 modules/input/mouse_codes.cppm diff --git a/modules/input/CMakeLists.txt b/modules/input/CMakeLists.txt index 34947be..5ccfefc 100644 --- a/modules/input/CMakeLists.txt +++ b/modules/input/CMakeLists.txt @@ -1,4 +1,11 @@ -add_library_module(NAME input INTERFACES system.cpp) -target_link_libraries(input PUBLIC surface math logger tbb) +add_library_module( + NAME + input + INTERFACES + system.cppm + codes.cppm + components.cppm + events.cppm) +target_link_libraries(input PUBLIC surface math logger) -add_test_module(input system.test.cpp) +# add_test_module(input system.test.cpp) diff --git a/modules/input/codes.cppm b/modules/input/codes.cppm index 6b3993f..05e2ccc 100644 --- a/modules/input/codes.cppm +++ b/modules/input/codes.cppm @@ -1,10 +1,7 @@ -#pragma once +export module input.codes; +import std; -#include - - -enum : uint16_t -{ +export enum class Key: std::uint16_t { /* digits */ D0 = 48, D1 = 49, @@ -173,24 +170,4 @@ enum : uint16_t Pause = 284, Menu = 348, - }; - - -enum : uint8_t -{ - Button1 = 0, - Button2 = 1, - Button3 = 2, - Button4 = 3, - Button5 = 4, - Button6 = 5, - Button7 = 6, - Button8 = 7, - - LButton = Button1, - RButton = Button2, - MButton = Button3, -}; - -} // namespace lt::Key diff --git a/modules/input/components.cppm b/modules/input/components.cppm index e79a62e..edd069c 100644 --- a/modules/input/components.cppm +++ b/modules/input/components.cppm @@ -1,19 +1,17 @@ -export module input.components; - -#include +export module input.system:components; +import input.codes; +import std; namespace lt::input { -struct Trigger +export struct Trigger { - uint32_t mapped_keycode; + Key mapped_keycode; }; -struct InputAction +export struct InputAction { - using Key = size_t; - - enum class State : uint8_t + enum class State : std::uint8_t { inactive, active, @@ -28,18 +26,18 @@ struct InputAction Trigger trigger; }; -class InputComponent +export class InputComponent { public: InputComponent() = default; - auto add_action(InputAction action) -> size_t + auto add_action(InputAction action) -> std::size_t { m_actions.emplace_back(std::move(action)); return m_actions.size() - 1; } - auto get_action(auto idx) -> const InputAction & + auto get_action(std::size_t idx) -> const InputAction & { return m_actions[idx]; } diff --git a/modules/input/events.cppm b/modules/input/events.cppm index 102be84..fdc4417 100644 --- a/modules/input/events.cppm +++ b/modules/input/events.cppm @@ -1,21 +1,24 @@ -#pragma once +export module input.events; -#include +import input.codes; +import math.vec2; + +import std; namespace lt::input { -class AnalogEvent +export class AnalogEvent { public: - AnalogEvent(uint32_t input_code, math::uvec2 pointer_position) - : m_input_code(input_code) + AnalogEvent(Key key, math::uvec2 pointer_position) + : m_key(key) , m_pointer_position(pointer_position) { } - [[nodiscard]] auto get_code() const -> uint32_t + [[nodiscard]] auto get_key() const -> Key { - return m_input_code; + return m_key; }; [[nodiscard]] auto get_pointer_position() const -> math::uvec2 @@ -25,20 +28,14 @@ public: [[nodiscard]] auto to_string() const -> std::string { - auto stream = std::stringstream {}; const auto &[x, y] = m_pointer_position; - stream << "input::AnalogEvent: " << m_input_code << " @ " << x << ", " << y; - return stream.str(); + return std::format("input::AnalogEvent: {} @ {}, {}", std::to_underlying(m_key), x, y); } private: - uint32_t m_input_code; + Key m_key; math::uvec2 m_pointer_position; }; -class AxisEvent -{ -}; - } // namespace lt::input diff --git a/modules/input/mouse_codes.cppm b/modules/input/mouse_codes.cppm deleted file mode 100644 index e69de29..0000000 diff --git a/modules/input/system.cppm b/modules/input/system.cppm index 719699c..7d4aa76 100644 --- a/modules/input/system.cppm +++ b/modules/input/system.cppm @@ -1,11 +1,14 @@ -#pragma once - -#include -#include -#include -#include -#include -#include +export module input.system; +export import :components; +import logger; +import app.system; +import debug.assertions; +import ecs.registry; +import memory.reference; +import surface.system; +import surface.events; +import math.vec2; +import std; namespace lt::input { @@ -56,12 +59,7 @@ private: module :private; - -#include