Retained Mode

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

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

Einzelnachweise

  1. a b c Quinn Radich: Retained Mode Versus Immediate Mode. In: Win32 apps. Microsoft, 30. Mai 2018, abgerufen am 21. Dezember 2019 (englisch).
  2. Alex Feldmeier: GUI Programming. In: UWP Computer Science and Software Engineering Technical Report. 12. Oktober 2013, abgerufen am 22. Dezember 2019 (englisch): „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 (englisch).
  4. DirectX double buffering. Abgerufen am 7. Mai 2020 (englisch).
  5. OpenGL face culling. Abgerufen am 7. Mai 2020 (englisch).
  6. DirectX occlusion culling. Abgerufen am 7. Mai 2020 (englisch).
  7. OpenGL. Abgerufen am 4. Mai 2020 (englisch).
  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 (englisch, google.com [abgerufen am 22. Dezember 2019]): “SceneKit and SpriteKit on the other hand are retained-mode APIs”

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.