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(./math)
#
add_subdirectory(./asset_baker)
add_subdirectory(./asset_parser)
# add_subdirectory(./asset_baker)
# add_subdirectory(./asset_parser)
# add_subdirectory(./asset_manager)
#
add_subdirectory(./camera)

View file

@ -8,8 +8,6 @@ using lt::test::expect_unreachable;
using lt::test::Suite;
using lt::test::expect_eq;
using lt::test::expect_ne;
using lt::test::expect_throw;
using lt::test::expect_false;
using lt::test::expect_true;
@ -19,7 +17,7 @@ using lt::ecs::Registry;
struct Component
{
int m_int;
int m_int {};
std::string m_string;
[[nodiscard]] friend auto operator==(const Component &lhs, const Component &rhs) -> bool
@ -43,7 +41,7 @@ struct std::formatter<Component>
struct Component_B
{
float m_float;
float m_float {};
[[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;
constexpr auto null_entity = std::numeric_limits<Entity>::max();
/** A registry of components, the heart of an ECS architecture.
*
* @todo(Light): Implement grouping

View file

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

View file

@ -35,13 +35,13 @@ public:
void static show_imgui_window();
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::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::println("{}", message);
@ -53,37 +53,37 @@ private:
};
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)...);
}
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)...);
}
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)...);
}
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)...);
}
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)...);
}
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)...);
}

View file

@ -201,7 +201,7 @@ private:
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>

View file

@ -58,20 +58,28 @@ System::System(Ref<ecs::Registry> registry): m_registry(std::move(registry))
System::~System()
{
// TODO(Light): make registry.remove not validate iterators
auto entities_to_remove = std::vector<ecs::Entity> {};
for (auto &[entity, surface] : m_registry->view<SurfaceComponent>())
try
{
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()
@ -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);
// code to remove decoration
long hints[5] = { 2, 0, 0, 0, 0 };
Atom motif_hints = XInternAtom(display, "_MOTIF_WM_HINTS", False);
auto hints = std::array<unsigned char, 5> { 2, 0, 0, 0, 0 };
const auto motif_hints = XInternAtom(display, "_MOTIF_WM_HINTS", False);
XChangeProperty(
display,
@ -151,7 +159,7 @@ void System::on_surface_construct(ecs::Registry &registry, ecs::Entity entity)
motif_hints,
32,
PropModeReplace,
(unsigned char *)&hints,
hints.data(),
5
);
@ -283,28 +291,7 @@ void System::handle_events(SurfaceComponent &surface)
break;
}
case Expose: break;
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");
default: break; /* pass */
}
}
}

View file

@ -47,7 +47,9 @@ void create_surface_component(test::FuzzDataProvider &provider, ecs::Registry &r
try
{
registry.create_entity("").add_component<surface::SurfaceComponent>(
auto entity = registry.create_entity();
registry.add<surface::SurfaceComponent>(
entity,
surface::SurfaceComponent::CreateInfo {
.title = std::move(title),
.resolution = resolution,
@ -64,11 +66,11 @@ void create_surface_component(test::FuzzDataProvider &provider, ecs::Registry &r
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:
{
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(tag);
registry->create_entity();
break;
}
@ -119,15 +120,15 @@ test::FuzzHarness harness = [](const uint8_t *data, size_t size) {
}
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);
});
registry->get_entt_registry().remove<SurfaceComponent>(*view.begin());
// @TODO(Light): push some event
}
}
break;
@ -136,6 +137,7 @@ test::FuzzHarness harness = [](const uint8_t *data, size_t size) {
{
break;
}
case FuzzAction::count:
case FuzzAction::tick_system:
{
system.tick();