FBO's in OpenGL/C++ und Xcode

Für Fragen zu Grafik APIs wie DirectX und OpenGL sowie Shaderprogrammierung.
Antworten
jaeggie
Beiträge: 8
Registriert: 30.03.2011, 13:53

FBO's in OpenGL/C++ und Xcode

Beitrag von jaeggie »

Hallo liebe Leute,

ich versuch gerade ein ein FBO zu erstellen. Habe auch schon mit der Software GLview übrprüft, ob GL_EXT_framebuffer_object unterstützt wird. Laut GLview ist alles im grünen Bereich und ich könnte eigentlich mit der Erstellung eines FBO anfangen.
Allerdings erkennt Xcode nicht die Funktionen, die zu FBO's gehören. Ich kann also gar nicht anfangen zu programmieren, da der Compiler schon meckert, wenn ich nur die Zeile

Code: Alles auswählen

glGenFramebuffersEXT(1, &fb);
hinzufüge.
Folgende Fehlermeldung: main.cpp:27: error: expected constructor, destructor, or type conversion before '(' token


Meine Frage ist: Muss ich noch irgendnen Header, Paket etc. includen, damit er die Funktionen erkennt. Finde im Netz irgendwie nix.
Wäre bombig, wenn ihr mir helfen könntet. Ich würd nämlich jetzt gern anfangen mit dem Proggen.
joggel

Re: FBO's in OpenGL/C++ und Xcode

Beitrag von joggel »

Ist das die einzige OGL-Funktion mit "EXT" oder "ARB" als Endung die nicht funktioniert?
jaeggie
Beiträge: 8
Registriert: 30.03.2011, 13:53

Re: FBO's in OpenGL/C++ und Xcode

Beitrag von jaeggie »

Beide gehen nicht
joggel

Re: FBO's in OpenGL/C++ und Xcode

Beitrag von joggel »

Dann solltest Du dir zB "glew" runterladen.
jaeggie
Beiträge: 8
Registriert: 30.03.2011, 13:53

Re: FBO's in OpenGL/C++ und Xcode

Beitrag von jaeggie »

Oje. Ich versteh aber nicht, warum. Wenn doch angeblich mein System alles unterstützt. Versuche jetzt glew in Xcode einzubinden. Ist aber voll das Durcheinander.
kristof
Beiträge: 92
Registriert: 19.01.2009, 13:05

Re: FBO's in OpenGL/C++ und Xcode

Beitrag von kristof »

Hast du denn schon andere OpenGL Funktionen aufgerufen? Eigentlich musst du nur das OpenGL Framework in dein Projekt einbinden und #include <OpenGL/OpenGL.h> als Header verwenden.
glassbear
Establishment
Beiträge: 324
Registriert: 08.04.2003, 18:09
Alter Benutzername: Enrico_
Echter Name: Enrico
Wohnort: San Diego
Kontaktdaten:

Re: FBO's in OpenGL/C++ und Xcode

Beitrag von glassbear »

jaeggie hat geschrieben:Oje. Ich versteh aber nicht, warum. Wenn doch angeblich mein System alles unterstützt. Versuche jetzt glew in Xcode einzubinden. Ist aber voll das Durcheinander.
Die Standard-OpenGL Header Files enthalten nicht die Definitionen für alle möglichen Erweiterungen. Das ganze ist unabhängig davon, ob der Treiber eine Extension unterstützt. Letzteres sagt nur, dass der Treiber das kann. Um das zu benutzen, brauchst du auch korrekte Header-Files und Initialisierungs-Code. Beides nimmt dir zum Beispiel glew ab.

Ich kenn mich mit OSX nicht ganz so aus, eventuell gibt es da ein gl/glext.h, was das alles enthällt...
Ein Hoch auf uns Männer... Auf die Frau, die uns HAT ( oder hat, und nicht weiß, dass sie uns hat ) ...auf die Idiotinnen ... besser gesagt VOLLPFOSTINNEN ... die uns hatten und uns verloren haben ... und auf die GLÜCKLICHEN, die das Vergnügen & Glück haben werden uns kennenzulernen!
joggel

Re: FBO's in OpenGL/C++ und Xcode

Beitrag von joggel »

jaeggie hat geschrieben:Oje. Ich versteh aber nicht, warum. Wenn doch angeblich mein System alles unterstützt. Versuche jetzt glew in Xcode einzubinden. Ist aber voll das Durcheinander.
Was heißt denn "Durcheinander" ?
Fehlermeldung?
Compiler- oder Link- Fehlermeldung?
Wie lauten diese?
Youka
Beiträge: 28
Registriert: 20.04.2011, 18:24
Wohnort: Darmstadt

Re: FBO's in OpenGL/C++ und Xcode

Beitrag von Youka »

Um den Nutzen von OpenGL vereinfacht zu erklären:
OpenGL-Funktionen liegen auf der Grafikkarte (daher auch hardwarebeschleunigt) und müssen erst für dein Programm zugänglich gemacht werden. Dazu gibt es eine bestimmte Funktion, die je nach System anders heißt (in Windows wglGetProcAddress) und einen Zeiger auf die OpenGL-Funktion zurückgibt, wenn sie verfügbar ist, ansonsten einen NULL-Zeiger. Anhand einer Abfrage der möglichen Extensions mit z.B. glGetString(GL_EXTENSIONS) erfährst du Extension-Namen, die darauf hinweisen, welche Extension-Funktionen du importieren könntest.

Die OpenGL Header-Datei enthält die Standardfunktionen, die durch z.B. opengl32.dll ihren Zeiger bekommen. Alles weitere muss separat von der Grafikkarte geholt werden.
Glew erledigt diese Arbeit, indem es jede mögliche OpenGL-Funktion als NULL-Zeiger definiert und versucht, diese zuzuordnen.
Jörg
Establishment
Beiträge: 296
Registriert: 03.12.2005, 13:06
Wohnort: Trondheim
Kontaktdaten:

Re: FBO's in OpenGL/C++ und Xcode

Beitrag von Jörg »

Vorsicht, die Funktionen liegen nicht "auf der Grafikkarte", sondern werden vom jeweiligen OpenGL-Treiber exportiert (meist eine normale shared library), abzufragen ueber eglGetProcAddress bzw. wglGetProcAddress, wenn man auf Windows laeuft.
Antworten