Połączenie SFML z Qt
Ostatnio zmodyfikowano 2013-10-14 21:46
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.htmlEdit: 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 |
|
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): QApplication a( argc, argv ); MainWindow w; w.show();
return a.exec();
|
|
1 « 2 » |