Frage

Ich habe eine Standard-Schwemme Umsetzung. Die Anzeigefunktion zeichnet jedes Objekt, aber ich brauche eine ständige Aktualisierung auf bestimmte Werte der einzelnen Objekte. Wie es ist, ist der einzige Weg, die ich denken kann, dies zu tun einen Thread zum Laichen der Aktualisierung zu behandeln. Allerdings kann ich verwenden glutPostRedisplay () von einem anderen Thread zu bekommen Schwemme nicht das Fenster zu aktualisieren. Was ist ein guter Weg, um eine Schleife haben Werte neben der Schwemme Schleife zu aktualisieren?

Auch, was ist der beste Weg für Bruchteile von Sekunden (statt sleep () für ganze Sekunden) schlafen.

War es hilfreich?

Lösung

Wenn Sie eine Art regelmäßige Aktualisierung benötigen, wollen Sie wahrscheinlich eine glutIdleFunc . Dies ist eine Funktion, die in einer Schleife aufgerufen wird erhalten, wenn es keine Veranstaltungen kommen in verarbeitet werden. Wenn Sie stattdessen etwas in regelmäßigen Abständen aufgerufen werden soll (im Gegensatz zu so schnell wie möglich), können Sie versuchen, glutTimerFunc , die Sie etwas zu laufen durch die GLUT-Schleife eine bestimmte Anzahl von Millisekunden in die Zukunft.

Zeitplan erlaubt

Was Ihre zweite Frage, wenn Sie für Bruchteile von Sekunden schlafen müssen, könnten Sie versuchen wollen usleep für Mikrosekunde Auflösung Schlafperioden, oder nanosleep Schlafperioden in Nanosekunden angeben (obwohl ich eigentlich nicht Nanosekunde Auflösung in Gang zu bringen). Ich weiß nicht, auf welcher Plattform Sie sind auf oder, wenn diese unter Windows verfügbar ist, aber sie sollten auf jedem POSIX-kompatibelen System (Linux, BSD, Mac OS X) zur Verfügung. Aber vielleicht für Ihre Zwecke glutTimerFunc wird besser funktionieren.

Bearbeiten hinzufügen : Es sieht aus wie auf Windows würden Sie verwenden müssen [Sleep] ( http://msdn.microsoft.com/en-us/library/ms686298 (VS.85% 29.aspx) (beachten Sie die Hauptstadt S), die eine Zeit in Millisekunden dauert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top