hi,
ich versuche an die farbpalette des fb zu kommen und raff es irgendwie nicht.
den fb lese ich über die ioctl-funktion aus und erhalte diesbezüglich 414_720 bytes zurück.
diese ergibt sich ja aus der verwendeten auflösung von 720x576 pixel.
somit entspricht 1 pixel einem byte, aber wo und wie komme ich an die farbpalette od. enthält die einzelnen bytes auch noch zugleich die rgb-werte und den aplha-wert)???
es dürfte doch eigentlich nur den verweis zur entsprechenden palettenfarbe enthalten.
könnte mir jemand weiter helfen???
cu...
farbpalette des framebuffers auslesen
-
- Interessierter
- Beiträge: 93
- Registriert: Freitag 15. Oktober 2004, 18:40
-
- Neugieriger
- Beiträge: 6
- Registriert: Mittwoch 6. Oktober 2004, 16:52
Hallo, ich versuche mal ein wenig zu helfen. Du hast recht, ein Byte entspricht einem Pixel und stellt einen Verweis auf die Palettenfarbe dar.
Die Farbpalette (Colormap) holst und setzt du über ioctl-Aufrufe. Als Parameter wird ein struct fb_cmap genutzt, in der die Palettendaten zurückgegeben bzw. übergeben werden.
Aus dem Gedächtnis müsste das ungefähr so aussehen:
Ich hoffe, das hilft ein wenig weiter.
buribu
Die Farbpalette (Colormap) holst und setzt du über ioctl-Aufrufe. Als Parameter wird ein struct fb_cmap genutzt, in der die Palettendaten zurückgegeben bzw. übergeben werden.
Aus dem Gedächtnis müsste das ungefähr so aussehen:
Code: Alles auswählen
#include <linux/fb.h>
static struct fb_cmap cmap;
/*
cmap.start : first color in Palette
cmap.len : Count of colors in Palette
cmap.red : Array of unsigned short for red-value of color[index]
cmap.green : Array of unsigned short for green-value of color[index]
cmap.blue : Array of unsigned short for blue-value of color[index]
cmap.transp : Array of unsigned short for transp-value of color[index]
*/
// Holen der Palette
if (ioctl(fb, FBIOGETCMAP, &cmap )<0)
{
printf("Error in GetColormap");
}
// Setzen der Palette
if (ioctl(fb, FBIOPUTCMAP, &cmap )<0)
{
printf("Error in SetColormap");
}
Ich hoffe, das hilft ein wenig weiter.
buribu
-
- Interessierter
- Beiträge: 93
- Registriert: Freitag 15. Oktober 2004, 18:40