#include namespace lt::surface { System::System(Ref registry): m_registry(std::move(registry)) { m_registry->get_entt_registry() .on_construct() .connect<&System::on_surface_construct>(this); m_registry->get_entt_registry() .on_destroy() .connect<&System::on_surface_destroy>(this); } System::~System() { m_registry->get_entt_registry() .on_construct() .disconnect<&System::on_surface_construct>(this); m_registry->get_entt_registry() .on_destroy() .disconnect<&System::on_surface_destroy>(this); } } // namespace lt::surface