Я в основном хочу получить встроенную графическую систему GUI в свой OpenGL/Game. Мне нужно отобразить одно окно для пользователя.с использованием wxWidgets в GLUT/другом приложении
Я ищу wxWidgets.
Поскольку он работает путем «кражи» WinMain/MainLoop, я пытаюсь его взломать, поэтому я могу запустить его основной цикл в отдельном потоке.
Потому что я не мог получить его wxThread работает хорошо, я сделал «образец» с ОС Windows Threads ... но инициализация еще нарушения на внутренностях WxWidgets ...
Любая обратная связь по этому вопросу ?
Мой код заключается в следующем:
class MyApp: public wxApp
{
virtual bool OnInit();
};
DECLARE_APP(MyApp)
IMPLEMENT_APP_NO_MAIN(MyApp)
DWORD WINAPI MyThreadFunction(LPVOID lpParam)
{
wxApp* pApp = new MyApp();
wxApp::SetInstance(pApp);
int argc = 0; wxChar ** argv = NULL;
wxEntryStart(argc, argv);
pApp->CallOnInit();
pApp->OnRun();
return 0;
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, wxCmdLineArgType lpCmdLine, int nCmdShow) {
DWORD id = 0;
CreateThread(NULL,0, MyThreadFunction,NULL, 0,&id);
assert(id != NULL);
return 0;
}
Я попытался сделать код инициализации WxWidgets в основном потоке, и только вызов CallOnInit() в отдельном потоке, но тот же результат.
Зачем вам нужно работать вне рамки wxWidgets для основного потока? Просто любопытно, так как я также использую wxWidgets/OpenGL для игры и просто использую функцию простоя для моего «основного». –
Я просто не хотел, чтобы моя игра зависела от wxWidgets ... только от перенасыщения. Если wxWidgets доступен, хорошо, я могу отобразить графический интерфейс. – fabiopedrosa
Что это значит? wxWidgets будет доступен, если вы отправляете свою игру с ней или используете статическую библиотечную версию. – aib