Ich zeichne etwas mit XWindow Drawable, Pixmap und XRender auf dem Bildschirm. Ich kann sehen, dass manchmal Flimmern ist. Gibt es eine Möglichkeit, auf VBLANK zu warten? Ich habe schon viel gegoogelt, hab Lust auf eine Münze in einem Wald.
Es ist KEIN OpenGL beteiligt. Es ist Linux (Ubuntu). Ich könnte (nano) sleep () verwenden, muss aber wissen, wann die Zeit zum Zeichnen gekommen ist, wie es geht.
Ich finde die bei weitem einfachste Lösung ist GLX wegen seiner exzellenten High-Level-Schnittstelle in Richtung Synchronisation und Doppelpufferung. Bitte beachten Sie, dass GLX nicht OpenGL ist, sondern eine X-Erweiterung. Du brauchst einen Dummy-OpenGL-Kontext als SwapBuffers (aus irgendeinem Grund), aber das war's.
Wenn Sie aus irgendeinem Grund ohne GLX arbeiten möchten, können Sie dies tun, indem Sie doppelte Puffer durch X Double Buffer Extension (DBE) erstellen und manuell mit der X Syncronization Extension in Richtung Anzeige synchronisieren. Ich habe es selbst nicht getan, aber Sie sollten in der Lage sein, etwas nach Ihren Wünschen zu finden, das XSyncListSystemCounters aufruft (nach richtiger Initialisierung!):
XSyncListSystemCounters gibt einen Zeiger auf ein Array von Systemzählern zurück, die von der Anzeige
unterstützt werden
Ich kann allerdings nicht viel mehr über den harten Weg finden. Viel Glück.