Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Połączenie SFML z Qt

Ostatnio zmodyfikowano 2013-10-14 21:46
Autor Wiadomość
akwes
» 2013-10-14 17:35:07

Pętle okna SFML-a oraz Qt muszą wykonywać się równocześnie. Jak inaczej sobie wyobrażasz równoczesne działanie obydwu okien? Radzę poczytać o wątkach. Najlepiej wykorzystaj std::thread.
Mrovqa, skoro mamy dwie pętle, które wykonują się taką samą ilość razy oraz które mają takie same warunki końcowe to możemy je połączyć w jedną ;)

Po co aż tak kombinować i mieszać do tego wątki? Wystarczy, że połączy główną pętlę SFMLu z główną pętlą QT. Robiłem podobnie łącząc C++/CLI i SFML. W QT na pewno da się zrobić to samo.

QCoreApplication::processEvents(), http://qt-project.org/doc​/qt-5.0/qtcore​/qcoreapplication.html

Edit: Jeżeli będzie chciał pracować na tych samych danych będzie miał tylko problemy. Będzie musiał sprawdzać jakie gwarancje dają konkretne kontenery STL, elementy QT i SFML i inne zabawy w semafory, muteksy i operacje atomowe, a debugowanie kodu wielowątkowego to nie taka łatwa sprawa, ponieważ bugi mogą się "czasami pojawiać" a "czasami nie" :P Pod dywanem z tego co pamiętam trwa o tym mała dyskusja :P
P-93683
Mrovqa
» 2013-10-14 21:46:50
Mrovqa, skoro mamy dwie pętle, które wykonują się taką samą ilość razy oraz które mają takie same warunki końcowe to możemy je połączyć w jedną ;)
Generalnie się temu nie przyglądałem (korzystałem z WYSIWYG-a :P), ale z tego co zauważyłem, to że Qt ma własną gdzieś wbudowaną pętlę, tj. defaultowo taki kod generuje (wnętrzne maina):
C/C++
QApplication a( argc, argv );
MainWindow w;
w.show();

return a.exec();
P-93721
1 « 2 »
Poprzednia strona Strona 2 z 2