Bonjour � tous,
je viens de me heurter � un probl�me dont les seules solutions que je vois sont absolument horribles au point de vue conception, c'est pour �a que je fais appel � votre aide.
Comme indiqu� dans le titre, je cherche � ex�cuter des fonctions depuis un thread, en les lan�ant depuis le thread principal. J'explique la n�cessit� de faire cela : je code un petit wrapper pour coder en Opengl en utilisant le fen�trage et les �v�nements SDL, du coup vu que je veux qu'on puisse faire du multi fen�trage et du multi vue dans chaque fen�tre, j'ai besoin de cr�er mes fen�tres dans l'unique thread graphique qui tourne. Sauf que je dois pouvoir cr�er des fen�tres depuis le thread principal. Du coup je dois appeler quelque chose du genre graphicalThread.addWindow(...); et graphicalThread ajoute la fen�tre dans sa boucle run. Cela implique de sauvegarder les arguments lors de l'appel � la fonction addWindow de graphicalThread.
C'est donc extr�mement laid, car je n'ai pas une seule fonction, mais une vingtaine, donc autant de "tuple" d'arguments � enregistrer.
Voyez-vous une solution propre ?
Edit : Evidemment, il faut que sit�t apr�s avoir post� le message j'aie l'id�e d'une solution qui me paraisse bien meilleure (je ne sais pas pourquoi �crire tuple m'a fait penser � �a), mais dites moi quand m�me ce que vous en pensez : lorsqu'on appelle addWindow, on ajoute une std::function f correspondant � la fonction qu'on souhaite appeler en lui bindant ses arguments, comme �a on n'a plus qu'� appeler f() dans l'update.
Partager