Framebuffer direkt mit C++ ansprechen
-
Moin,
ich bin beim Herum stöbern über ein etwas älteres, aber sehr interessantes Buch über Grafik Grundlagen und Programmiertechniken gestolpert. Leider benutzt es einige Funktionen ("screen_interface.get_screen_pointer" und Ähnliches) mit denen ich so nichts an zu fangen weiss.
Es läuft aber darauf hinaus, direkt in den Video-Speicher hinein zu schreiben. ich versuche nun eine Möglichkeit zu finden, diese Funktionen zu umgehen und ebenfalls direkten Zugriff auf den Framebuffer zu bekommen. Wie kann ich also die Anfangsadresse des Video-Speicher / Framebuffer ermitteln ??
Freue mich auf eure Antworten .
-
Für welches OS (ich nehme an, das Buch stammt noch aus DOS Zeiten)?
Unter Windows kann nur ein Treiber mit der Hardware direkt kommunizieren.
Für Linux gibt es ein paar mehr direkte Möglichkeiten, s. Linux-Framebuffer.
-
@Th69
Nun ganz so alt ist es nicht : 2. Auflage 2008.Mein Betriebssystem ist Linux Mint 20 Ulyanna base. Danke für den Wikipedia Verweis, lese mir den gerade durch.
-
Das ist nicht von der Sprache abhängig, sondern der verwendeten Plattform. Es gibt aber nur wenig Hardware, die sowas erlaubt. Auf alten 8 Bit Plattformen war es z.B. üblich, das die Grafikhardware einfach an irgendwelchen Magic Adressen die Daten übernahm, man also einfach einen Pointer auf eine feste Adresse zeigen lässt. Das ist heute aber sehr selten, ein Nintendo DS ist das neueste was mir einfällt, wo das ging. Auf moderner Architektur ist sowas nämlich arschlangsam, würde man so programmieren (wenn die Hardware es zulässt) wäre das Programm fast nur mit diesem Ram Zugriff beschäftigt.
-
Ich nehme an dass es von der Hardware her auf quasi allen PCs gehen würde. Jetzt mal ohne über die Geschwindigkeit oder Sinnhaftigkeit nachzudenken.
-
Auf PCs benutze ich fuer sowas immer: https://github.com/ColinGilbert/pixeltoaster