Was ist der Sofortmodus?
In der Computergrafikprogrammierung ist der Sofortmodus ein Rendering-Zustand, in dem die normale Abfolge von Aktionen und das Framework, in dem sie existieren, vollständig umgangen und in einigen Fällen deaktiviert werden. Dies bedeutet, dass die ausgeführte Anwendung direkt die Funktionen aufrufen muss, die für die Anzeige auf einem Anzeigegerät wie einem Monitor erforderlich sind, anstatt sich auf angeborene Zyklen außerhalb des Programms zu verlassen. Der Sofortmodus wird am häufigsten für Programme verwendet, die schnellstmögliche Renderzeiten erfordern, z. B. für Multimediaanwendungen oder Videospiele. Er wird auch als Lehrmittel beim Erlernen der Verwendung komplexer grafischer Bibliotheken verwendet. Ein schlecht gestaltetes oder nicht ordnungsgemäß implementiertes Programm, das das Rendern im Sofortmodus verwendet, kann dazu führen, dass leere Bildschirme oder leere Bereiche eines Bildschirms angezeigt werden und bestehen bleiben, da bei Bedarf keine automatischen Aufrufe zum Neuzeichnen des aktuellen Frames ausgeführt werden. Eine Variante ist als gemischter Modus bekannt, bei der ein Programm das beibehaltene Rendering-Framework an seinem Platz beibehält, während es versucht, bestimmte Teile davon über Funktionen im Sofortmodusstil zu steuern.
In vielen Computeranwendungen wird das Rendern von Informationen oder Grafiken auf einem Anzeigegerät über eine ereignisgesteuerte Programmarchitektur ausgeführt. Dies bedeutet, dass der Bildschirm nur als Reaktion auf Eingaben eines Programms oder des Benutzers neu gezeichnet wird. Dies funktioniert gut für Programme wie Textverarbeitungsprogramme oder Webbrowser, jedoch nicht für Anwendungen wie Multimedia-Player, Software für die künstlerische Wiedergabe oder Videospiele, bei denen ein Bildschirm möglicherweise 60 oder mehr Mal pro Sekunde ohne irgendeine Art von Grafik neu gezeichnet werden muss Eingang. Die Lösung besteht darin, den Sofortmodus zu verwenden.
Anstatt es einem Betriebssystem oder einer Grafikbibliothek zu ermöglichen, zu steuern, wann und wie eine Anzeige aktualisiert und gerendert wird, übernimmt das Programm die vollständige Kontrolle und beseitigt alle Hindernisse zwischen dem Anzeigegerät und dem Anwendungscode. Auf diese Weise kann ein Programm unter Verwendung von Timern und anderem benutzerdefiniertem Code eine eigene Anzeigeschleife erstellen, sodass der Bildschirm so oft oder so oft neu gezeichnet wird, bis das gewünschte Ergebnis erzielt wird. Eine Schwierigkeit bei der Verwendung des unmittelbaren Modus besteht darin, dass einige der transparenten Funktionen des Renderings im beibehaltenen Modus - wie z. B. eine Geometrie-Engine - möglicherweise nicht verfügbar sind und die Anwendung über eigene Implementierungen verfügen muss. Ein weiteres Problem besteht darin, dass ein Programm eine große Menge an Verarbeitungsleistung erfordern kann, um die Wiedergabeschleife auf einer akzeptablen Geschwindigkeit zu halten.
Eine Alternative zur ausschließlichen Verwendung des Sofortmodus ist die Verwendung eines gemischten Rendermodus. Bei diesem Entwurf wird das Rendering-Framework für den beibehaltenen Modus beibehalten, sodass die gesamte Funktionalität einer Grafikbibliothek verwendet werden kann. Bestimmte Funktionen oder Methoden werden jedoch überschrieben und durch vom Benutzer generierten Code ersetzt, der das vorhandene Rendering-Framework zwingen kann, in einem zu arbeiten Art und Weise, die eher wie Sofortmodus ist. Diese Methode kann effektiv sein, aber auch Code erstellen, der schwer zu debuggen ist und unerwartete Ergebnisse haben kann, abhängig davon, wie der Benutzercode und der Bibliothekscode interagieren.