Estoy intentando crear una aplicación opengl multiproceso con libx11, con un hilo separado por ventana y un hilo administrador.Aplicación multiproceso X11 y OpenGL
que tienen un ciclo de eventos en el hilo gerente:
while(true)
while(XQLength(mPlatformData->display)){
XNextEvent(mPlatformData->display, &event);
std::cout << "event" << std::endl;
}
}
Este es un gran bucle de eventos para aplicaciones de un solo subproceso, pero con esta configuración multiproceso suceden cosas extrañas.
Cuando estoy creando una ventana, necesito deshabilitar la cola de eventos, o GLXMakeCurrent simplemente se cuelga: mi hilo completo se detiene y no hace nada.
No encuentro mucha información sobre las aplicaciones multiproceso X11 en la red, ¿debo manejar mis eventos de forma diferente?
Supongo que X11 y OpenGL son inseguros. –
GL es seguro para subprocesos si uso un contexto/subproceso. Y de acuerdo con la documentación de X11, debería ser seguro si llamo a XInitThreads() primero, lo que hago. – Dutow