Bonjour,
Je developpe une application qui affiche des textures procedurales calculées en continue.
Mon thread principal (A) gere les evenement souris et receptionne des nouvelles textures, pendant qu'un thread parallele (B) calcule le contenu des textures au fur et a mesure et les envois a (A) via des slots.
Le problème c'est que ces evenements slots arrivant dans (A) sont suffisament rapprochés pour que tous les evenements souris arrivant dans (A) soient ignorés: du coup j'ai bien la mise a jour des textures, mais je ne peux plus traiter les evenements souris. Si j'intercalle un QCoreApplication::processevents() a l'arrivée de mon slot dans (A) je peux à nouveau receptionner des evenements souris, mais dans ce cas si je bouge la souris sans m'arreter tous les evenements souris (A) bloquent la queue de traitement de mes slot venant de (B)...!
Quelle solution me suggérez vous ? Y-a t-il moyen de ne faire traiter qu'un seul evenement en attente, de manière à par exemple alterner traitement souris/traitement texture ?
Merci !
Partager