Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

the[V]oid

Alter Hase

  • »the[V]oid« ist der Autor dieses Themas

Beiträge: 775

Wohnort: Aachen

  • Private Nachricht senden

1

25.11.2009, 20:04

Problem mit glReadPixels [erledigt]

Hallo

Ich verwende glReadPixels:

C-/C++-Quelltext

1
2
GLfloat afPixels [3];
glReadPixels (x, viewport[3] - y, 1, 1, GL_RGB, GL_FLOAT, static_cast<void*>(afPixels));


Das Problem ist, dass an den Elementen von afPixels keine Änderungen vorgenommen werden.
Nach dem Aufruf von glReadPixels sind die Werte dieselben wie vor dem Aufruf.
Laut Dokumentation passiert dies, wenn ein Fehler generiert wurde.
Jedoch liefert ein glGetError in Kombination mit gluErrorString vor- und nach glReadPixels beide Male "No Error".

Was könnte sonst noch der Grund dafür sein?

Vielen Dank im Voraus
<< an dieser Stelle ist eine Signatur verstorben >>

Crush

Alter Hase

Beiträge: 383

Wohnort: Stuttgart

Beruf: Softwareentwickler

  • Private Nachricht senden

2

25.11.2009, 20:21

Hast Du vorher glPixelStoref oder i irgendwie aufgerufen?
Ansonsten probier mal glPixelTransfer(GL_MAP_COLOR, true);

the[V]oid

Alter Hase

  • »the[V]oid« ist der Autor dieses Themas

Beiträge: 775

Wohnort: Aachen

  • Private Nachricht senden

3

25.11.2009, 20:25

Nein. An anderer Stelle funktioniert das glReadPixels übrigens ohne Probleme.

Das schaut etwa so aus:

Quellcode

1
2
3
4
5
Rendere etwas
Lies Farbe an bestimmter Stelle mit glReadPixels aus
Rufe glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); auf
Rendere etwas anderes
Lief Farbe an derselben Stelle mit glReadPixels aus


Und beim zweiten Mal klappt's nicht mehr.

EDIT 1: Oh das mit dem "glPixelTransfer(GL_MAP_COLOR, true)" hab ich überlesen. Ich versuchs mal eben.

EDIT 2: Hat keinerlei Auswirkung.

EDIT 3: Hat sich erledigt. Ich hatte beim "glEnd;" an Stelle von "glEnd();" geschrieben. Nur frage ich mich, warum da kein GL-Fehler generiert worden ist, was laut Doku zu erwarten gewesen wäre, da glReadPixels innerhalb eines glBegin() - glEnd() Blocks aufgerufen wurde.
<< an dieser Stelle ist eine Signatur verstorben >>

Crush

Alter Hase

Beiträge: 383

Wohnort: Stuttgart

Beruf: Softwareentwickler

  • Private Nachricht senden

4

25.11.2009, 20:48

Es ist ja innerhalb eines glBegin-Blocks. Dabei gibt´s keine Fehlermeldung, find ich komisch?

Werbeanzeige