[OpenGL] glReadPixels unabhängig von Displayeinstellung



  • Hi,

    ich hab bisher glReadPixels() immer mit 32bit RGBA verwendet. Dafür sind die Parameter recht einfach. 😃

    Allerding kann ich mein Programm dann nur auf Rechnern mit den selben Einstellungen benutzen. Ansosnten gibt's einen Absturz. Ich möchte anhand der Systemeinstellung automatisch die richtigen Parameter setzen, sodass mein Programm auf allen möglichen Rechnern laufen kann. Ich benutze Windows. Also würde ich über den DC das Pixelformat auslesen. Danach glReadPixels() richtig einstellen und genau da Blick ich nicht durch (lt. MSDN):

    ... Several parameters control the processing of the pixel data before it is placed into client memory. These parameters are set with three commands: glPixelStore, glPixelTransfer, and glPixelMap. This topic describes the effects on glReadPixels of most, but not all of the parameters specified by these three commands.

    Gibt's dafür vllt. schon einen Algorithmus/Ansatz für Windows?
    (Wie müssen die Einstellungen für 16, 24 bit Farbtiefe sein?)



  • Für 16 bit klappt's mit GL_UNSIGNED_SHORT_xxx, was allerdings nicht im MSDN, VC8.0 zu finden ist.
    Aber ich habe noch nichts für 24 bit gefunden. Mein XP hat auch nicht mehr die Bildschirmeinstellung für 24 bit Pixeltiefe, sodass ich's nicht testen kann. 😞


Log in to reply