C++ SFML Thread как передать аргументы в класс?

У меня есть main.cpp, в нем я хочу реализовать экран загрузки, по этому я хочу воспользоватся многопоточностью, но когда я это делаю у появляется ошибка:

введите сюда описание изображения

как мне лучше это реализовать?

main.cpp

#include <SFML/Graphics.hpp>
#include "GameMenu.cpp"
#include "Settings.cpp"

using namespace sf;
 
int main()
{
    RenderWindow window(VideoMode(1366, 768, 32), "CLANNAD ~The Story of Sunohara~");

    Image icon; 
    if (!icon.loadFromFile("DATA/Texture/icon/icon.png")) {
        return EXIT_FAILURE;}
    window.setIcon(icon.getSize().x, icon.getSize().y, icon.getPixelsPtr());

    bool started = false;
    Thread thread(&GameMenu::load_screen, &window, &started);
    thread.launch();

    bool Full = false;
    ConfigFile Config;

    Config.output_config();
    if (Full == true) {
        window.create(VideoMode(), "CLANNAD ~The Story of Sunohara~", Style::Fullscreen);}
    if (Full == false) {
        window.create(VideoMode(1366, 768, 32), "CLANNAD ~The Story of Sunohara~");
    }
    window.setVerticalSyncEnabled(true);
    //Set icon window
    GameMenu GM;
    GM.menu(window);
    return 0;
}

GameMenu.cpp

class GameMenu {
public:

    void load_screen(RenderWindow& window, bool& started) {
        Texture Imagebackground;
        Imagebackground.loadFromFile("DATA/Texture/icon/background_sattings_befor.png");
        Sprite SpriteBackground;
        SpriteBackground.setTexture(Imagebackground);
        SpriteBackground.setScale(
            window.getSize().x / SpriteBackground.getGlobalBounds().width,
            window.getSize().y / SpriteBackground.getGlobalBounds().height);
        if (started == true) {
            while (window.isOpen()) {
                Event event;
                while (window.pollEvent(event)) {
                    if (event.type == Event::Closed)
                        window.close();
                }
                window.clear();
                window.draw(SpriteBackground);
                window.display();
                return;
            }
        }
        if (started == false) {}
    }

Ответы (0 шт):