Registriert: Fr Nov 12, 2004 14:58 Beiträge: 76 Wohnort: Aachen
Salut,
ich habe da folgendes Problem. Ich lade ein Bitmap mit der Image Componente von Delphi. Dann wandele ich das Bitmap in ein Daten-Array um und kopiere dieses dann mit DrawPixels in den FrameBuffer.
Es werden nicht nur die Farben falsch sondern auch das Bild verkehrt-Herum dargestellt, obwohl ich an den Einstellungen mit glPixelStore und glPixelTransfer, etc. nix ändere.
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Also dein Problem ist vollgendes. Das Bild aus Delphi wird im BGR Format gespeichert. Blau Grün Rot.
Bei OpenGL hingegen sagst du aber, dass das Bild RGB ist.
Entweder kannst du die farben in den einzelnen Pixeln tauschen oder du übergibst bei glDrawPixels ein GL_BGR. Das führt aber bei Grafikkarten die kein OpenGL 1.2 unterstützten zu Problemen. Dann hast du keine Andere wahl als das unzutauschen. Aber eine TNT2 unterstützt das auf jeden Fall auch schon.
Um das andere Problem zu lösen solltes es reichen wenn du die Richtung deine äußeren Schleife änderst.
Code:
for j := bmp.Height-1downto0dobegin
PS: Du könntest dort auch die komplette Zeile auf einmal mit dem Befehl Move kopieren. Das ist schneller als jedes Byte einzeln. Das kannst du dir auch in meinem Texturen Loader anschauen. Dort kopiere ich reichlich Bilder.
Mitglieder in diesem Forum: Google [Bot] und 5 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.