Hmm..
Ich hab zwar keine Ahrnung von Spielprogrammierung, aber..
Delphi-Quellcode:
begin
while Running do
begin
Input;
Update;
Draw;
Application.ProcessMessages;
end;
end;
Wenn die Funktionen hier zum Teil von SubThreads ausgeführt werden, kann sich der MainThread alleine um ProcessMessages und Draw kümmern..
Jeder Thread 'liest' den Input und 'berechnet' das Update eigenständig.
Da hier nur das 'lesen' z.B. per CriticalSection geschützt werden muss, ist auch kein Thread-Problem zu erwarten.
Der MainThread rüft dann zyklisch (z.B. alle x ms) das Draw der SubThreads auf und lässt dort das reine Zeichnen laufen, welche (interner Zugriff ebenfalls über CS geschützt) die vorab bereits berechneten Position des Objektes im Thread des MainThread zeichnet.