Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Sa Jul 05, 2025 20:02

Foren-Übersicht » Programmierung » Einsteiger-Fragen
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 19 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
 Betreff des Beitrags: Header und Freeglut unter C++
BeitragVerfasst: Mo Jan 03, 2011 20:13 
Offline
DGL Member

Registriert: Sa Okt 18, 2008 11:59
Beiträge: 180
Ja ich weiß das ist eigentlich das DELPHIgl Forum, aber hier sind ja auch ziemlich viele C / C++ler.

Ich habe Probleme Header, libs und dlls für OpenGL und libs und dlls für FreeGlut (jaja, ich weiß SDL ist besser...) zu finden.


Bei der offiziellen OpenGL-Seite finde ich nur eine gl3.h und paar Extension Headers (glext.h und glxext.h).
Bei FreeGlut (freeglut.sourceforge.net) finde ich eine .rar mit viel zu vielen Dateien (das der include Ordner in den include Ordner meines Compilers muss hab ich bereits herausgefunden, aber sonst scheint da noch bissl was zu fehlen (laut meines "Ersthelfers" können die Funktionen nicht richtig mit den Standard-DLLs die sich IRGENDWO befinden nicht richtig verlinkt werden).

Mein "Ersthelfer" hat bereits versucht, es selbst mit cygwin und gcc zu kompilieren. Das scheint auch soweit zu klappen. Leider findet der Linker einige Symbole nicht (unter anderem _imp_____glutInitWuth@12). Es wäre schön, wenn mir jemand jemand zu kompilierte binaries (.lib und .dll) verhelfen könnte.

Falls das relevant ist:
Was ich vorhabe: OpenGL 3.1 verwenden, aber abwärtskompatibel auch die alten herausgenommenen Funktionen will ich verwenden können (mit FreeGlut).
Ich benutze Windows 7 64bit, folgende Compiler: Windows Visual Studio 2008 oder 2009 und QT (MinGW).


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Header und Freeglut unter C++
BeitragVerfasst: Sa Jan 15, 2011 18:14 
Offline
DGL Member

Registriert: Sa Okt 18, 2008 11:59
Beiträge: 180
Ab wann darf man in diesem Forum eigentlich Themen pushen? Ich mach das jetzt einfach mal sind ja schon 12 Tage vergangen (fast 2 Wochen).^^


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Header und Freeglut unter C++
BeitragVerfasst: Sa Jan 15, 2011 21:14 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Ich bin weder C/C++ noch freeglut User. Aber vielleicht kommt ja noch was.
Ein funktionierendes Beispiel aus anderer Quelle hast du nicht finden können?

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Header und Freeglut unter C++
BeitragVerfasst: So Jan 16, 2011 18:03 
Offline
DGL Member

Registriert: Sa Okt 18, 2008 11:59
Beiträge: 180
Naja, wenn ich es schon nicht auf der offiziellen Seite von OpenGL die Header kriegen kann, wie sollte ich die dann wo anders finden?
Selbiges bei freeglut.

Versucht hatte ich es natürlich trotzdem, aber ohne Erfolg.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Header und Freeglut unter C++
BeitragVerfasst: Mo Jan 17, 2011 10:53 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Das würde mir als Entwickler sagen, dass ich keine Sekunde länger meine Zeit mit diesem Zeug verschwenden würde und mir ein anderes Funktionierendes Template suchen sollte.

glut macht ja nichts weiter als einem bei standardaufgaben zu helfen wie z.B. die Initialisierung.
Wenn man aber ein funktionierendes Beispiel findet, ist das eh schon gemacht.
Also vergiss freeglut und leg ohne dem Zeug los.

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Header und Freeglut unter C++
BeitragVerfasst: Mo Jan 17, 2011 10:57 
Offline
DGL Member

Registriert: Sa Okt 18, 2008 11:59
Beiträge: 180
Ich würde ja SDL nehmen, aber ich will ja eigentlich das RedBook durcharbeiten. Da nutzen die Codebeispiele FreeGlut und das wäre dann denke ich mal... praktischer es hier zu nutzen.

Zudem ist ja nicht nur FreeGlut das Problem, sondern auch das ich einen aktuellen C-Header für OpenGL haben will, der alle Funktionen bis zur Version 3.1 unterstützt (also auch die die rausgenommen wurden, aber wegen kompatibilitätsgründen trotzdem meine Grafikkarte unterstützt).


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Header und Freeglut unter C++
BeitragVerfasst: Mo Jan 17, 2011 11:00 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Soweit ich mich erinnere gibt es bei C/C++ keinen Header der alles beinhaltet. es gibt/gab den gl.h header und den glu.h header . Inwieweit die alles beinhalten kann ich dir nicht sagen.
Aber die Header von OpenGL werden in C/C++ veröffentlicht. Das was du also von OpenGL.org bekommst ist das orginalste was geht.

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Header und Freeglut unter C++
BeitragVerfasst: Di Jan 18, 2011 16:34 
Offline
DGL Member

Registriert: Sa Okt 18, 2008 11:59
Beiträge: 180
Und genau da liegt mein Problem.

http://www.opengl.org/registry/
Bietet keinen gl.h zum Download an.

Der Header gl3.h ist hierbei nicht das was ich suche. Dort steht:

[...]
* gl3.h only includes interfaces supported in a OpenGL 3.1 (without
* GL_ARB_compatibility) or OpenGL 3.2, 3.3, 4.0, or 4.1 core profile
* implementation, as well as interfaces for newer ARB extensions which
* can be supported by the core profile. It does not, and never will
* include functionality removed from the core profile, such as
* fixed-function vertex and fragment processing.
*
* Implementations of OpenGL 3.1 supporting the optional
* GL_ARB_compatibility extension continue to provide that functionality,
* as do implementations of the OpenGL 3.2+ compatibility profiles, and
* source code requiring it should use the traditional <GL/gl.h> and
* <GL/glext.h> headers instead of <GL3/gl3.h>.
[...]

Womit ich nicht in der Lage sein sollte die alten Funktionen nutzen zu können. (glext.h ist auf der Seite aber einfach zu finden.)
Such ich vllt einfach nur an der falschen Stelle?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Header und Freeglut unter C++
BeitragVerfasst: Di Jan 18, 2011 17:36 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mär 30, 2007 18:35
Beiträge: 331
Wenn du nur nach OpenGL-Headern suchsts, schau mal da: http://glew.sourceforge.net/


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Header und Freeglut unter C++
BeitragVerfasst: Do Jan 20, 2011 14:10 
Offline
DGL Member

Registriert: Sa Okt 18, 2008 11:59
Beiträge: 180
Ich will keine Extensions nutzen, ich will die ehemaligen CORE-Funktionen nutzen können (nicht nur die JETZIGEN Core-Funktionen, auch die alten, die rausgenommen wurden (wie zum Beispiel: glVertex3f)).


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Header und Freeglut unter C++
BeitragVerfasst: Do Jan 20, 2011 15:32 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Dez 03, 2008 12:01
Beiträge: 167
Wohnort: /country/germany
Programmiersprache: C++ / FreeBASIC
Bei deinem Compiler sollten doch eigentlich passende Header dabei sein. VC++ bringt welche mit und MinGW auch. Die neuen Funktionen wirst du aber über glew nutzen müssen, da die OpenGL-Implementation von Windows noch bei 1.1 ist. Obwohl, seit Vista oder 7 ist die meines Wissens nach bei 1.5, aber immernoch weit hintendran.

_________________
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst -- Steve Wozniak


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Header und Freeglut unter C++
BeitragVerfasst: Di Feb 15, 2011 13:31 
Offline
DGL Member

Registriert: Sa Okt 18, 2008 11:59
Beiträge: 180
Hallo ich melde mich mal wieder. Ich habe einige Zeit vorher es erstmal aufgegeben und will es nochmal versuchen.

Scheinbar finden sich die Funktionen in einem dem Compiler zugehörigen Header wieder (interessanterweise sind im gl3.h von opengl.org nichtmal die aktuellen "Core"-Funktionen).

Problem: Mir fehlen aber dennoch die passenden Libs.


(>*BEAREBITET*<)
Hat sich erledigt... vorerst. ;)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Header und Freeglut unter C++
BeitragVerfasst: Di Feb 15, 2011 16:44 
Offline
DGL Member
Benutzeravatar

Registriert: Di Sep 06, 2005 18:34
Beiträge: 362
Wohnort: Hamburg
Hi,

auch wenn sich das Problem evtl gelöst hat will ich nochmal was zu dem Header Gedöns sagen, was alles evtl etwas aufklären könnte:

Die von Windows mitgeliefert OpenGL Version steht bei 1.1 und daran kann niemand etwas ändern. Neuere OpenGL versionen werden durch Bibliotheken vom Grafiktreiber hinzugefügt, die von der opengl32.dll von Windows geladen werden. Um unter Windows auf die Core Funktionen neuerer OpenGL Versionen zugreifen zu können muss man diese allerdings manuell aus den dlls laden. Da hilft eine Extension Library wie GLEW weiter, da sie das für einen übernimmt (ob man nun Core Funktionen oder Extensions lädt, ist egal). Die glext.h sollte da auch helfen können, hab die selber aber nie benutzt.
Ob es da evtl Compiler spezifische Lösungen für gibt weiß ich nicht.

Die gl3.h ist für diejenigen, die nur OpenGL 3.0+ Dinge nutzen wollen. D.h. da sind alle 3.0+ Core Funktionen und Tokens drin und sonst nix. Um das allerdings nutzen zu können (hab mich da auch sehr drüber gewundert), muss man allerdings GL3_PROTOTYPES definieren (am besten direkt am Compiler). Da nur so die Funktionen automatisch geladen werden, sonst werden nur die Funktion Pointer definiert und man muss sie selber aus der dll laden.

Hoffe das bringt nachträglich noch etwas Licht ins Dunkel

Gruß
Shai

_________________
Der Mensch hat neben dem Trieb der Fortpflanzung und dem zu essen und zu trinken zwei Leidenschaften: Krach zu machen und nicht zuzuhören. (Kurt Tucholsky)
Schwabbeldiwapp, hier kommt die Grütze. (Der Quästor)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Header und Freeglut unter C++
BeitragVerfasst: Do Feb 24, 2011 14:27 
Offline
DGL Member

Registriert: Sa Okt 18, 2008 11:59
Beiträge: 180
Also hier bin ich wieder.^^

Also die Funktionen bis Version 1.3 gehen Problemlos (bis auf glArrayElement im DoubleBuffer-Modus... egal... ist nicht so wichtig).

Nun kann ich ja problemlos die Funktionsprototypen in den Header ergänzen, aber nicht in den Libs. Sprich: ich kann neuere Funktionen immernoch nicht nutzen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Header und Freeglut unter C++
BeitragVerfasst: Do Feb 24, 2011 19:39 
Offline
DGL Member
Benutzeravatar

Registriert: Di Sep 06, 2005 18:34
Beiträge: 362
Wohnort: Hamburg
Hey,

ich verweise dich mal auf den folgenden Abschnitt eines Artikels:
http://www.opengl.org/wiki/Getting_star ... extensions
Auch wenns da OpenGL 2.0+ heißt, es erklärt wie man unter Windows an die Core Funktionen kommt, was, wenn ich dich richtig verstehe, genau das ist was du willst.

Der Abschnitt kurz zusammen gefasst: alle Methoden über 1.1 (1.2+, 2.x, 3.x und 4.x) müssen zur Laufzeit aus den dlls geladen werden, manuell. In den Headern (glext.h etc.) findest du nur die entsprechenden Function Pointer.

Diese Arbeit kann dir z.B. GLEW abnehmen.
Sorry, wenn ich dich so stur wieder darauf verweise, aber du wirst kaum drum herum kommen GLEW zu benutzen, es sei denn du willst dir Ellen lange include Files schreiben und hunderte Zeilen gleich aussehenden Code um blöde Funktionen zu laden, wenn das bereits andere vor dir getan haben.

GLEW lädt nicht nur Extensions, sondern ALLE (so jedenfalls der Plan) Funktionen die von OpenGL zur Verfügung gestellt werden können (auch wenn du 3.x benutzt werden die 1.x und 2.x Funktionen geladen). Inklusive aller Core Funktionen, die von deinen Treibern unterstützt werden (die sollten natürlich einigermaßen aktuell sein).

GLEW bringt zwar einiges an Overhead mit (es wird halt auch viel geladen, was du nie benutzen wirst), ist aber, erst recht am Anfang, unersetzlich.
Um GLEW zu installieren lädtst du dir von http://glew.sourceforge.net/ die Binaries für dein System herunter (win64 wenn ich das richtig sehe) und entpackst die Dateien in deine Compiler Umgebung (libs zu libs, includes zu includes etc.)
Dann fügst du beim Linken GLEW32 (oder so ähnlich) hinzu und "includierst" überall wo du GL benutzen willst <GL/glew.h> (nicht gl.h oder glu.h).
Irgendwo am Anfang deines Programms musst du allerdings noch glewInit() aufrufen (bevor irgendwas mit GL gemacht wird) ... dies lädt dann alle Funktionen.

Ich bin mir nicht 100% sicher, ob ich dein Problem richtig erfasst habe (bin ziemlich übermüdet), aber wenn es sich mit GLEW lösen lässt, solltest du es wirklich mal versuchen ... sobald du es einmal zum Laufen bekommen hast, wirst du dich erstmal nicht mehr um irgendwelches Funktions Gedöns kümmern müssen.

_________________
Der Mensch hat neben dem Trieb der Fortpflanzung und dem zu essen und zu trinken zwei Leidenschaften: Krach zu machen und nicht zuzuhören. (Kurt Tucholsky)
Schwabbeldiwapp, hier kommt die Grütze. (Der Quästor)


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 19 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Foren-Übersicht » Programmierung » Einsteiger-Fragen


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder 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.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.010s | 15 Queries | GZIP : On ]