> For the complete documentation index, see [llms.txt](https://lados-organization.gitbook.io/goku/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://lados-organization.gitbook.io/goku/goku-game-engine_de/kapitel-16-das-fenstersystem.md).

# Kapitel 16: Das Fenstersystem

Die `Window`-Struktur repräsentiert ein Fenster auf dem Bildschirm, in dem das Spiel angezeigt wird. Dieses System verwendet das Modul `sdl2::video` aus der `SDL2`-Bibliothek in Rust.&#x20;

Die `Window`-Struktur enthält drei Felder: `sdl_context`, `video_subsystem` und `canvas`. Der `sdl_context` ist der Hauptkontext der SDL-Bibliothek. Der `video_subsystem` ist ein Subsystem, das die Video-Funktionalitäten verwaltet. Die `canvas` ist eine Struktur, die den Bereich repräsentiert, in dem wir Dinge zeichnen können.&#x20;

Ein `Window` wird mit einem spezifischen Titel, einer Breite und einer Höhe erstellt. Die Funktion `new` initialisiert SDL2, erstellt ein Fenster mit dem angegebenen Titel, der Breite und der Höhe und gibt ein `Result` zurück, das entweder eine neue Instanz von `Window` oder eine Fehlermeldung enthält.&#x20;

Das Fenster wird in der Mitte des Bildschirms erstellt und verwendet den OpenGL-Kontext. Die Leinwand wird im Softwaremodus erstellt, was bedeutet, dass die CPU für das Rendering verwendet wird. Dies ist typischerweise langsamer als die Verwendung der GPU, aber es wird breiter unterstützt.
