Hallo Liebe Community,
ich habe mir ein Buch zur Grafikprogrammierung mit dem X-Server gekauft. Dort gibt es natürlich jeder Menge Quellcode. Dabei bin ich auf ein Programm gestoßen, dass bei mir einen Fehler verursachte. Dabei konnte das Fenster nicht erzeugt werden und die Funktion XCreateWindow hat nicht richtig gearbeit(genauen Wortlaut weiß ich nicht mehr).
Der Code der den Fehler ausmacht:
1 2 3 4 5 6 7 8 | pixmap_formats = XListPixmapFormats(dpy, &count); for(i=0, depth=0; i<count; i++) { if(pixmap_formats[i].depth > depth) { depth = pixmap_formats[i].depth; bytespp = pixmap_formats[i].bits_per_pixel / bits_per_byte; scanline_pad = pixmap_formats[i].scanline_pad; } } |
Dabei wird die maximale Tiefe bestimmt. Nach diesem Code kommt für depth hier 32 raus. Wenn ich diese Schleife übergehe und für depth 24 einsetze, läuft das Programm Fehlerfrei.
Daraus habe ich gefolgert das die Farbtiefe hier nicht richtig bestimmt wird. Standardmäßig nutzt doch der X-Server die 24Bit?!
Meine Frage ist nun in diesem Zusammenhang, wie kann ich das Verhalten hier anpassen, dass ich nicht die 24 bit als Wert einschreiben muss. Es kann ja vllt. auch mal passieren, dass ich den X-Server mit 32 Bit laufen lasse, dann würde dieses Programm ja nicht alles mögliche ausnutzen. Was ist meine möglichkeit hier den korrekten Wert zu ermitteln?
Vielen Dank schon einmal im voraus ☺