PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : openGL Framebuffer rausfinden/bestimmen


Stink Stiefel
2004-11-09, 11:25:32
Hallo,

ich bin ein ziemlicher Anfaenger was opengl betrifft.
Ich schreibe ein plugin auf openGl Basis. Dabei moechte ich auf den Grafikspeicher zugreifen und die vom Hauptprogramm dargestellten Sachen veraendern. Wie bekomme ich nun raus welchen buffer das Programm verwendet?
Ich habs bisher so versucht :

glGetIntegerv(GL_READ_BUFFER, Buffers);

(The params parameter returns one value: a symbolic constant indicating which color buffer is selected for reading)

Jetzt habe ich in Buffers 1029 drinstehen. Wo finde ich nun was diese 1029 bedeutet ???

Xero
2004-11-09, 15:31:22
öhm schonmal mit glReadPixels probiert ?

Stink Stiefel
2004-11-09, 16:12:56
Ja, mit glReadPixels lese ich ja einen oder mehrer Pixel aus dem Buffer aus.
Vorher muss ich aber doch angeben welchen buffer ich zum lesen verwenden moechte. Da es ja mehrere gibt FRONT_LEFT, FRONT_RIGHT, BACK_LEFT, usw...

z.B. glReadBuffer(GL_FRONT);

Meine frage ziehlte darauf ab, wie ich rausbekomme welcher Buffer vom Hauptprogramm genutzt wird, damit ich mit meinem plugin darauf zugreifen kann.

Trap
2004-11-09, 16:34:57
Jetzt habe ich in Buffers 1029 drinstehen. Wo finde ich nun was diese 1029 bedeutet ???
Laut meinem gl.h Includefile ist 1029 der Wert von GL_FRONT...

Stink Stiefel
2004-11-09, 17:08:46
Ahh!

Danke

marco42
2004-11-09, 21:06:25
glReadPixels liesst wenn du es nicht anders angibst vom default buffer. das ist bei double buffering der back buffer und bei single buffering der front buffer. du benutzt also singe buffering.

Stink Stiefel
2004-11-10, 11:56:44
ich benutzte die Funktion wie folgt:
if(glGetError() == GL_NO_ERROR)
{
glReadPixels(a, b, 1, 1, GL_RGBA , GL_FLOAT, &imagecolor);
}

trotzdem habe ich dann in imagecolor nur 0 drin stehen. Obwohl da was drin stehen sollte. Daher meine Vermutung das es am falschen Buffer liegt.