J'ai une application C# .NET avec laquelle j'ai créé un contrôle d'affichage d'image personnalisé. Chaque affichage d'image représente son propre contexte d'affichage et dessine l'image à l'aide de glDrawPixels (Oui je sais qu'il vaudrait mieux utiliser des textures, j'envisage dans les futures mais cette application est déjà trop longue et mon temps est limité). J'essaie maintenant d'avoir les deux images pan simultanément. C'est-à-dire, lorsqu'une image est déplacée de dix pixels, la seconde image descend dix pixels. Comme si:Mises à jour simultanées sur deux contextes d'affichage dans openGL
imageOne.YPan -= 10;
imageTwo.YPan -= 10;
imageOne.Invalidate(); //This forces a redraw.
imageTwo.Invalidate(); //This forces a redraw.
D'accord, voici le problème que j'ai. Un seul des affichages d'images est en train de se redessiner. Si je place une pause entre les deux appels Invalider et que la durée de la pause est d'au moins 110 millisecondes, les deux seront redessinés, mais pas simultanément. Il semble donc que la deuxième image essaie toujours de rattraper la première. De plus, une pause de 110 millisecondes ralentit trop le mouvement.
J'ai essayé de placer la mise à jour et l'invalidation de chaque image dans son propre fil mais cela n'a pas aidé.
Au début du dessin, je mets le contexte approprié à jour, et à la fin j'appelle swapbuffers(). J'ai essayé d'ajouter un glfinin à la fin de la fonction de tirage, mais il n'y avait aucun changement.
Se pourrait-il que ce soit la carte graphique qui pose problème? Je suis coincé en utilisant un GPU intégré qui a seulement OpenGL 1.4.
J'espère avoir fourni suffisamment de détails pour pouvoir trouver la réponse à mon problème.