In allen Codebeispielen, die ich mir angesehen habe, sieht die Spieleschleife ungefähr so aus:
while(true)
{
InputAndUpdate();
Draw();
SwapBuffers();
}
Zerstört dies jedoch nicht die Parallelität zwischen CPU und GPU? Nach dem Aufruf der Swap-Puffer sitzt die GPU untätig da, während die CPU die Eingabe und Aktualisierung übernimmt. Wenn die CPU die Ausgabe der Zeichenbefehle beendet hat, wartet sie, bis das Rendern der GPU abgeschlossen ist. Warum wird es nicht so gemacht? ::
while(true)
{
Draw(); //First issue the draw commands
InputAndUpdate(); //Update while the GPU is busy rendering
SwapBuffers(); //Now block and wait for the GPU to finish
}