Retained Mode

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

Retained Mode (wörtlich übersetzt: Gespeichert-Modus) ist ein Entwurfsmuster in der Computergrafik für die Gestaltung der Programmierschnittstelle (API) in Grafikbibliotheken, wo

sondern umfangreiche Umleitungen auf die durch die Grafikbibliothek verwalteten - also gespeicherten - Ressourcen nutzen.[1] Das schließt die Verwendung von Doppelpufferung nicht aus.

Der Immediate Mode ist ein alternativer Ansatz. Historisch betrachtet ist der Retained Mode der vorherrschende Stil in Programmbibliotheken für grafische Benutzeroberflächen (GUI)[2]; jedoch können beide Modi auch in ein und derselben Programmbibliothek koexistieren und schließen einander in der Praxis nicht unbedingt aus.

Übersicht[Bearbeiten | Quelltext bearbeiten]

Schematische Erläuterung des Modus mit gespeicherten Ressourcen eines Grafik-API

Im Retained Mode bewirken Client-Aufrufe in die Grafikbibliothek kein unmittelbares rendern, sondern aktualisieren stattdessen ein abstraktes internes Modell (typischerweise eine Liste von Objekten), das im Speicherbereich der Grafikbibliothek verwaltet wird. Dadurch kann die Bibliothek das tatsächliche Rendern zusammen mit der Verarbeitung von verbundenen Objekten optimieren.[1]

Einige Techniken zur Optimierung des Renderings sind:

Ein Beispiel für die Koexistenz mit dem Immediate Mode in derselben Grafikbibliothek ist OpenGL[7]. OpenGL verfügt über Immediate-Mode-Funktionen, die zuvor definierte serverseitige Objekte (Texturen, Vertexpuffer und Indexpuffer, Shader usw.) verwenden können, ohne dass unveränderte Daten erneut vom Client an die Grafikbibliothek gesendet werden.

Beispiele für Rendering-Systeme mit Retained Mode sind Windows Presentation Foundation[1], SceneKit im macOS[8], und PHIGS.

Schematische Erläuterung des Unmittelbar-Modus eines Grafik-API im Unterschied

Es gibt ein weiteres bedeutendes Entwurfsmuster für die Programmierschnittstelle (API) in Grafikbibliotheken – den Immediate Mode.

Siehe auch[Bearbeiten | Quelltext bearbeiten]

Einzelnachweise[Bearbeiten | Quelltext bearbeiten]

  1. a b c Quinn Radich: Retained Mode Versus Immediate Mode. In: Win32 apps. Microsoft, 30. Mai 2018, abgerufen am 21. Dezember 2019.
  2. Alex Feldmeier: GUI Programming. In: UWP Computer Science and Software Engineering Technical Report. 12. Oktober 2013, abgerufen am 22. Dezember 2019: „Retained mode has been the standard for years. Just about every GUI is in retained mode.“
  3. OpenGL double buffering. Abgerufen am 7. Mai 2020.
  4. DirectX double buffering. Abgerufen am 7. Mai 2020.
  5. OpenGL face culling. Abgerufen am 7. Mai 2020.
  6. DirectX occlusion culling. Abgerufen am 7. Mai 2020.
  7. OpenGL. Abgerufen am 4. Mai 2020.
  8. Marcel Weiher: iOS and macOS Performance Tuning: Cocoa, Cocoa Touch, Objective-C, and Swift. Addison-Wesley Professional, 2017, ISBN 978-0-13-308553-2 (google.com [abgerufen am 22. Dezember 2019]): „SceneKit and SpriteKit on the other hand are retained-mode APIs“