[Windows/Linux] Pixel abfragen

Aiju

Gesperrt
Wie frage ich die Pixel vom Bildschirm ab? (Screenshot)
In soetwas möchte ich sie dann speichern:
C++:
struct Pixel {unsigned char r,g,b}; // Ein Pixel
Pixel screen[800*600]; // Auflösung 800x600 vorrausgesetzt
Den Code bräuchte ich für möglichst viele Plattformen (Stichwort: #ifdef) (aber mindestens für Windows & Linux)
 
Ich denke das wird nicht ganz so einfach platformunabhaengig loesbar sein da ja die grafischen Oberflaechen von Linux und Windows grundverschieden sind.
Die einzige platformunabhaengige Loesung die mir spontan einfaellt waere direkt auf den Grafikspeicher zuzugreifen, aber da wird zumindest der HAL von Windows wohl einen Riegel vorschieben, wenn ich das recht in Erinnerung habe. Wenn das ueberhaupt noch machbar ist. Damals im VGA-Mode war das ja noch ziemlich einfach. :)

Du wirst also wohl ueber Funktionen vom X-Server und Funktionen von Windows arbeiten muessen.
Damit Du in Deinem Programm selbst nicht seitenlange #IFDEF-Bloecke bauen musst waere es wohl sinnvoll Wrapper-Funktionen zu definieren und im Programm dann diese zu nutzen, so koenntest Du dann die wohl die Platformunabhaengigkeit erreichen.
 
Das ganze meine ich so:
Code:
#ifdef WIN32
#include <windows.h>

Pixel* getPixels()
{
 // ...
}
#else
Pixel *getPixels()
{
 // ...
}
#endif
 

Neue Beiträge

Zurück