refactor: fix all clang-tidy diagnosis

This commit is contained in:
light7734 2025-09-21 15:34:08 +03:30
parent 5cb331def9
commit 85a1bbfcab
Signed by: light7734
GPG key ID: 8C30176798F1A6BA
8 changed files with 56 additions and 62 deletions

View file

@ -5,8 +5,8 @@ add_subdirectory(./logger)
add_subdirectory(./debug) add_subdirectory(./debug)
add_subdirectory(./math) add_subdirectory(./math)
# #
add_subdirectory(./asset_baker) # add_subdirectory(./asset_baker)
add_subdirectory(./asset_parser) # add_subdirectory(./asset_parser)
# add_subdirectory(./asset_manager) # add_subdirectory(./asset_manager)
# #
add_subdirectory(./camera) add_subdirectory(./camera)

View file

@ -8,8 +8,6 @@ using lt::test::expect_unreachable;
using lt::test::Suite; using lt::test::Suite;
using lt::test::expect_eq; using lt::test::expect_eq;
using lt::test::expect_ne;
using lt::test::expect_throw;
using lt::test::expect_false; using lt::test::expect_false;
using lt::test::expect_true; using lt::test::expect_true;
@ -19,7 +17,7 @@ using lt::ecs::Registry;
struct Component struct Component
{ {
int m_int; int m_int {};
std::string m_string; std::string m_string;
[[nodiscard]] friend auto operator==(const Component &lhs, const Component &rhs) -> bool [[nodiscard]] friend auto operator==(const Component &lhs, const Component &rhs) -> bool
@ -43,7 +41,7 @@ struct std::formatter<Component>
struct Component_B struct Component_B
{ {
float m_float; float m_float {};
[[nodiscard]] friend auto operator==(const Component_B lhs, const Component_B &rhs) -> bool [[nodiscard]] friend auto operator==(const Component_B lhs, const Component_B &rhs) -> bool
{ {

View file

@ -6,6 +6,8 @@ namespace lt::ecs {
using Entity = uint32_t; using Entity = uint32_t;
constexpr auto null_entity = std::numeric_limits<Entity>::max();
/** A registry of components, the heart of an ECS architecture. /** A registry of components, the heart of an ECS architecture.
* *
* @todo(Light): Implement grouping * @todo(Light): Implement grouping

View file

@ -150,6 +150,11 @@ public:
return m_sparse.capacity(); return m_sparse.capacity();
} }
[[nodiscard]] auto is_empty() const noexcept -> bool
{
return m_dense.empty();
}
private: private:
std::vector<Dense_T> m_dense; std::vector<Dense_T> m_dense;

View file

@ -35,13 +35,13 @@ public:
void static show_imgui_window(); void static show_imgui_window();
template<typename... Args> template<typename... Args>
void static log(LogLvl lvl, std::format_string<Args...> fmt, Args &&...args) void static log(LogLvl lvl, std::format_string<Args...> fmt, Args &&...args) noexcept
{ {
std::ignore = lvl; std::ignore = lvl;
std::println(fmt, std::forward<Args>(args)...); std::println(fmt, std::forward<Args>(args)...);
} }
void static log(LogLvl lvl, const char *message) void static log(LogLvl lvl, const char *message) noexcept
{ {
std::ignore = lvl; std::ignore = lvl;
std::println("{}", message); std::println("{}", message);
@ -53,37 +53,37 @@ private:
}; };
template<typename... Args> template<typename... Args>
void log_trc(std::format_string<Args...> fmt, Args &&...args) void log_trc(std::format_string<Args...> fmt, Args &&...args) noexcept
{ {
Logger::log(LogLvl::trace, fmt, std::forward<Args>(args)...); Logger::log(LogLvl::trace, fmt, std::forward<Args>(args)...);
} }
template<typename... Args> template<typename... Args>
void log_dbg(std::format_string<Args...> fmt, Args &&...args) void log_dbg(std::format_string<Args...> fmt, Args &&...args) noexcept
{ {
Logger::log(LogLvl::debug, fmt, std::forward<Args>(args)...); Logger::log(LogLvl::debug, fmt, std::forward<Args>(args)...);
} }
template<typename... Args> template<typename... Args>
void log_inf(std::format_string<Args...> fmt, Args &&...args) void log_inf(std::format_string<Args...> fmt, Args &&...args) noexcept
{ {
Logger::log(LogLvl::info, fmt, std::forward<Args>(args)...); Logger::log(LogLvl::info, fmt, std::forward<Args>(args)...);
} }
template<typename... Args> template<typename... Args>
void log_wrn(std::format_string<Args...> fmt, Args &&...args) void log_wrn(std::format_string<Args...> fmt, Args &&...args) noexcept
{ {
Logger::log(LogLvl::warn, fmt, std::forward<Args>(args)...); Logger::log(LogLvl::warn, fmt, std::forward<Args>(args)...);
} }
template<typename... Args> template<typename... Args>
void log_err(std::format_string<Args...> fmt, Args &&...args) void log_err(std::format_string<Args...> fmt, Args &&...args) noexcept
{ {
Logger::log(LogLvl::error, fmt, std::forward<Args>(args)...); Logger::log(LogLvl::error, fmt, std::forward<Args>(args)...);
} }
template<typename... Args> template<typename... Args>
void log_crt(std::format_string<Args...> fmt, Args &&...args) void log_crt(std::format_string<Args...> fmt, Args &&...args) noexcept
{ {
Logger::log(LogLvl::critical, fmt, std::forward<Args>(args)...); Logger::log(LogLvl::critical, fmt, std::forward<Args>(args)...);
} }

View file

@ -201,7 +201,7 @@ private:
Ref<MirrorSystem> m_mirror_system; Ref<MirrorSystem> m_mirror_system;
lt::ecs::Entity m_window; lt::ecs::Entity m_window = lt::ecs::null_entity;
}; };
auto app::create_application() -> Scope<app::Application> auto app::create_application() -> Scope<app::Application>

View file

@ -58,20 +58,28 @@ System::System(Ref<ecs::Registry> registry): m_registry(std::move(registry))
System::~System() System::~System()
{ {
// TODO(Light): make registry.remove not validate iterators try
auto entities_to_remove = std::vector<ecs::Entity> {};
for (auto &[entity, surface] : m_registry->view<SurfaceComponent>())
{ {
entities_to_remove.emplace_back(entity); // TODO(Light): make registry.remove not validate iterators
} auto entities_to_remove = std::vector<ecs::Entity> {};
for (auto &[entity, surface] : m_registry->view<SurfaceComponent>())
{
entities_to_remove.emplace_back(entity);
}
for (auto entity : entities_to_remove) for (auto entity : entities_to_remove)
{
m_registry->remove<SurfaceComponent>(entity);
}
m_registry->disconnect_on_construct<SurfaceComponent>();
m_registry->disconnect_on_destruct<SurfaceComponent>();
}
catch (const std::exception &exp)
{ {
m_registry->remove<SurfaceComponent>(entity); log_err("Uncaught exception in surface::~System:");
log_err("\twhat: {}", exp.what());
} }
m_registry->disconnect_on_construct<SurfaceComponent>();
m_registry->disconnect_on_destruct<SurfaceComponent>();
} }
void System::on_register() void System::on_register()
@ -141,8 +149,8 @@ void System::on_surface_construct(ecs::Registry &registry, ecs::Entity entity)
XSetWMProtocols(display, main_window, &surface.m_native_data.wm_delete_message, 1); XSetWMProtocols(display, main_window, &surface.m_native_data.wm_delete_message, 1);
// code to remove decoration // code to remove decoration
long hints[5] = { 2, 0, 0, 0, 0 }; auto hints = std::array<unsigned char, 5> { 2, 0, 0, 0, 0 };
Atom motif_hints = XInternAtom(display, "_MOTIF_WM_HINTS", False); const auto motif_hints = XInternAtom(display, "_MOTIF_WM_HINTS", False);
XChangeProperty( XChangeProperty(
display, display,
@ -151,7 +159,7 @@ void System::on_surface_construct(ecs::Registry &registry, ecs::Entity entity)
motif_hints, motif_hints,
32, 32,
PropModeReplace, PropModeReplace,
(unsigned char *)&hints, hints.data(),
5 5
); );
@ -283,28 +291,7 @@ void System::handle_events(SurfaceComponent &surface)
break; break;
} }
case Expose: break; default: break; /* pass */
case GraphicsExpose: break;
case NoExpose: break;
case CirculateRequest: break;
case ConfigureRequest: break;
case MapRequest: break;
case ResizeRequest: break;
case CirculateNotify: break;
case CreateNotify: break;
case DestroyNotify: break;
case GravityNotify: break;
case MapNotify: break;
case MappingNotify: break;
case ReparentNotify: break;
case UnmapNotify: break;
case VisibilityNotify: break;
case ColormapNotify: break;
case PropertyNotify: break;
case SelectionClear: break;
case SelectionNotify: break;
case SelectionRequest: break;
default: log_inf("Unknown X Event");
} }
} }
} }

View file

@ -47,7 +47,9 @@ void create_surface_component(test::FuzzDataProvider &provider, ecs::Registry &r
try try
{ {
registry.create_entity("").add_component<surface::SurfaceComponent>( auto entity = registry.create_entity();
registry.add<surface::SurfaceComponent>(
entity,
surface::SurfaceComponent::CreateInfo { surface::SurfaceComponent::CreateInfo {
.title = std::move(title), .title = std::move(title),
.resolution = resolution, .resolution = resolution,
@ -64,11 +66,11 @@ void create_surface_component(test::FuzzDataProvider &provider, ecs::Registry &r
void remove_surface_component(ecs::Registry &registry) void remove_surface_component(ecs::Registry &registry)
{ {
const auto view = registry.get_entt_registry().view<SurfaceComponent>(); const auto view = registry.view<SurfaceComponent>();
if (!view->empty()) if (!view.is_empty())
{ {
registry.get_entt_registry().remove<SurfaceComponent>(*view.begin()); registry.remove<SurfaceComponent>(view[0].first);
} }
} }
@ -102,8 +104,7 @@ test::FuzzHarness harness = [](const uint8_t *data, size_t size) {
case FuzzAction::create_entity: case FuzzAction::create_entity:
{ {
const auto length = std::min(provider.consume<uint32_t>().value_or(16), 255u); const auto length = std::min(provider.consume<uint32_t>().value_or(16), 255u);
const auto tag = provider.consume_string(length).value_or(""); registry->create_entity();
registry->create_entity(tag);
break; break;
} }
@ -119,15 +120,15 @@ test::FuzzHarness harness = [](const uint8_t *data, size_t size) {
} }
case FuzzAction::push_event: case FuzzAction::push_event:
{ {
const auto view = registry->get_entt_registry().view<SurfaceComponent>(); auto view = registry->view<SurfaceComponent>();
if (!view->empty()) if (!view.is_empty())
{ {
view.each([&](auto entity, SurfaceComponent &surface) { for (auto &[entity, component] : view)
{
provider.consume<uint8_t>().value_or(0); provider.consume<uint8_t>().value_or(0);
}); // @TODO(Light): push some event
}
registry->get_entt_registry().remove<SurfaceComponent>(*view.begin());
} }
break; break;
@ -136,6 +137,7 @@ test::FuzzHarness harness = [](const uint8_t *data, size_t size) {
{ {
break; break;
} }
case FuzzAction::count:
case FuzzAction::tick_system: case FuzzAction::tick_system:
{ {
system.tick(); system.tick();