пользовательский интерфейс — проблема рендеринга SFGUI Stack Overflow

Я делаю систему меню сервера, однако, когда я удаляю все элементы из системы sfgui и перехожу в другое игровое состояние, метки из предыдущего игрового состояния становятся видимыми при обстоятельствах, которые я объясню через минуту, сначала позвольте мне показать Вы проблема.

Меню сервера:
Меню сервера.

Здесь вы можете увидеть проблему:
Здесь вы можете увидеть проблему

Код для удаления выглядит следующим образом.

void S_ServerMenu::Exit() {
ServerSelectWindow->Show(false);
desktop.RemoveAll();
desktop.Refresh();
}

Однако эта проблема возникает только при обновлении серверов, вот код для обновления.

void S_ServerMenu::RefreshServers() {
Document d;
d.Parse<0>(LoadInServers().c_str());
servers = ServerParser(d);
ServerListTable->RemoveAll();
ServerListTable->RefreshAll();
for(int i = 0; i < servers.size(); i++) {
auto label = sfg::Label::Create();

label->SetText(servers[i].Name);

MenuItem utm;
utm.lbl = label;
utm.index = i;
utm.owner = this;
label->SetAlignment(sf::Vector2f(0, 0));
label->FontSize = 16;
label->SetParent(ServerListTable);
label->cont = ServerSelectWindowContainer;
ServerListTable->Attach(label, sf::Rect<sf::Uint32>(1, i, 1, 1), sfg::Table::FILL | sfg::Table::EXPAND);

label->GetSignal(sfg::Label::OnLeftClick).Connect(std::bind(&MenuItem::Clicked, utm));
}
ServerSelectWindow->RefreshAll();
}

Кто-нибудь из вас знает, как решить эту проблему, если это так?

1

Решение

Я исправил это, создав отдельный рабочий стол для каждого экрана.

0

Другие решения


По вопросам рекламы [email protected]