OpenGL Sleep oder delay zwischen jedem frame?

So, ich bin versucht, eine Verzögerung, die auf dieses Programm, zwischen jeder Zeichnung.
Ich habe versucht mit Sleep(), aber es gibt mir eine Fehlermeldung, wenn der draw () - Funktion, und wenn an anderer Stelle eingesetzt, macht es keinen Effekt.

Xcode kompiliert die Datei, aber die Punkte die mich zu dieser Fehlermeldung während der Ausführung:

libsystem_kernel.dylib`__semwait_signal:
0x7fff8fd7937c:  movl   $33554766, %eax
0x7fff8fd79381:  movq   %rcx, %r10
0x7fff8fd79384:  syscall
0x7fff8fd79386:  jae    0x7fff8fd7938d            ; __semwait_signal + 17
0x7fff8fd79388:  jmpq   0x7fff8fd7a4c8            ; cerror
0x7fff8fd7938d:  ret    
0x7fff8fd7938e:  nop    
0x7fff8fd7938f:  nop  

Code:

void draw()
{
GLint width;

glClear(GL_COLOR_BUFFER_BIT);
glPointSize(10);

int x=0; int y=0;
glBegin(GL_POINTS);


for(x=0; x<500; x++)
{
    for(y=0;y<500; y++)
    {
        glColor3f(rand()%255,rand()%255, rand()%255);
        glVertex2i(rand()%500,rand()%500);
    }
}
sleep(500);
glEnd();
glFlush();
}


int main(int argc, char** argv){


glutInit(&argc, argv);
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize (500, 500);
glutInitWindowPosition (100, 100);
glutCreateWindow ("Trabalho de Modelagem e Simulação de Processos");


glutDisplayFunc(draw);
glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
gluOrtho2D (0.0f, 500.0f, 0.0f, 500.0f);
glutIdleFunc(draw);
glutMainLoop();
return 1;

}

  • Beobachten Sie Ihre Kapitalausstattung. Wenn das für Windows, es ist Sleep, nicht sleep. Auch, ich würde es nicht innerhalb der immediate-mode-Zeug. Setzen Sie nach der glFlush(). Wenn du immer "ein Fehler", ist es hilfreich, zeigen Sie uns den Fehler. Dadurch wird auch Ihnen helfen, in die routine zu Lesen der Fehler.
  • Hmm, ich entschuldige mich. Ich hatte ursprünglich nicht den Fehler anzuzeigen, oder haben Sie vielleicht bearbeitet es nur, nachdem ich gelesen habe ist die Frage. Versuchen, mein Vorschlag zum entfernen der Schlaf von der immediate-Modus. Meine Vermutung ist, dass dein kernel nicht schlafen wollen, während Sie in der Mitte der Weitergabe der Daten an GL.
  • Ja, mit Schlaf oder Schlaf, sondern gibt mir eine Fehlermeldung, oder macht das keinen Effekt, während es läuft.
InformationsquelleAutor Tehort | 2013-06-20
Schreibe einen Kommentar