Seite 1 von 1

Problem beim initialisieren eines OpenGL Fensters

Verfasst: So Mär 15, 2009 7:14 pm
von cloidnerux
Also, ich habe mich ein wenig mit OpenGl beschäftigt und ein wenig herumgespielt.
In diesem ramen habe ich die OpenGL Initilatoin in eine Klasse und damit in eine Externe Datei gepackt.
Alle benötigten externen variablen habe ich per

Code: Alles auswählen

extern <variable> name;
verfügbar gemacht. Beim Starten oder Compilieren kommt auch keine Fehlermeldung.
Es erscheint der Rahmen des Fensters, aber es geschieht nciht innen drinn.
Normal sollte es dort Schwarz sein.
Cih arbeite unter Windows und VC++.
Hier gibts den Sourcecode

Re: Problem beim initialisieren eines OpenGL Fensters

Verfasst: So Mär 15, 2009 7:43 pm
von Dirty Oerti
Ich hab mir deinen Code nicht angesehen, aber hast du den Code per -Wall kompiliert?
Bzw kannst du dir alle Warnungen ausgeben lassen?
Warnungen können nämlich sehr aufschlussreich sein...

Re: Problem beim initialisieren eines OpenGL Fensters

Verfasst: So Mär 15, 2009 7:50 pm
von cloidnerux
Also bei höchster Warnstufe kommt folgendes:

Code: Alles auswählen

c:\dokumente und einstellungen\jack\eigene dateien\visual studio 2005\projects\opengltest\opengltest\opengl.cpp(133) : warning C4244: 'Initialisierung': Konvertierung von 'int' in 'BYTE', möglicher Datenverlust
main.cpp
c:\dokumente und einstellungen\jack\eigene dateien\visual studio 2005\projects\opengltest\opengltest\main.cpp(95) : warning C4100: 'nCmdShow': Unreferenzierter formaler Parameter
c:\dokumente und einstellungen\jack\eigene dateien\visual studio 2005\projects\opengltest\opengltest\main.cpp(94) : warning C4100: 'lpCmdLine': Unreferenzierter formaler Parameter
c:\dokumente und einstellungen\jack\eigene dateien\visual studio 2005\projects\opengltest\opengltest\main.cpp(93) : warning C4100: 'hPrevInstance': Unreferenzierter formaler Parameter
Game.cpp
Code wird generiert...
c:\dokumente und einstellungen\jack\eigene dateien\visual studio 2005\projects\opengltest\opengltest\main.cpp(143) : warning C4701: Die möglicherweise nicht initialisierte lokale Variable "msg" wurde verwendet.
c:\dokumente und einstellungen\jack\eigene dateien\visual studio 2005\projects\opengltest\opengltest\opengl.cpp(118) : warning C4706: Zuweisung in bedingtem Ausdruck
c:\dokumente und einstellungen\jack\eigene dateien\visual studio 2005\projects\opengltest\opengltest\opengl.cpp(147) : warning C4706: Zuweisung in bedingtem Ausdruck
c:\dokumente und einstellungen\jack\eigene dateien\visual studio 2005\projects\opengltest\opengltest\opengl.cpp(154) : warning C4706: Zuweisung in bedingtem Ausdruck
c:\dokumente und einstellungen\jack\eigene dateien\visual studio 2005\projects\opengltest\opengltest\opengl.cpp(168) : warning C4706: Zuweisung in bedingtem Ausdruck
Verknüpfen...
Aber selbst nach behebung der Warnungen ist es nicht besser.

Re: Problem beim initialisieren eines OpenGL Fensters

Verfasst: So Mär 15, 2009 7:59 pm
von Kerli
cloidnerux hat geschrieben:Es erscheint der Rahmen des Fensters, aber es geschieht nciht innen drinn.
Normal sollte es dort Schwarz sein.
So beim überfliegen habe ich einmal nirgendwo ein Funktion gefunden die die Bildpuffer tauschen würde. So wie ich das sehe schreibst du immer in einen der Bildpuffer und vertauscht diese aber nie, sodass du natürlich auch nichts sehen kannst...

Re: Problem beim initialisieren eines OpenGL Fensters

Verfasst: So Mär 15, 2009 8:05 pm
von cloidnerux
So beim überfliegen habe ich einmal nirgendwo ein Funktion gefunden die die Bildpuffer tauschen würde. So wie ich das sehe schreibst du immer in einen der Bildpuffer und vertauscht diese aber nie, sodass du natürlich auch nichts sehen kannst...
Darn kann es eigentlich nicht liegen, da ich den code nach diesem hier geschriben habe: http://nehe.gamedev.net/data/lessons/l ... ?lesson=01
Außerdem funktionierte der code noch, als er in einer Datei war, was aber sehr unübersichtlich wurde.

Re: Problem beim initialisieren eines OpenGL Fensters

Verfasst: So Mär 15, 2009 8:16 pm
von Kerli
cloidnerux hat geschrieben:Darn kann es eigentlich nicht liegen, da ich den code nach diesem hier geschriben habe: [...]
Dann hast du dort aber nicht sehr gut gelesen. Folge doch deinem eigenen Link und suche nach "SwapBuffers". Dann öffne deine Quellcodedateien und suche ebenfalls nach "SwapBuffers". Anschließend erzählst du mir was dir auffällt ;)
cloidnerux hat geschrieben:Außerdem funktionierte der code noch, als er in einer Datei war, was aber sehr unübersichtlich wurde.
Dann ist wohle etwas verloren gegangen :P

Nur so eine Frage am Rande: Weshalb stopfst du deinen Code so mit den verschiedensten Dingen für ein Spiel voll bevor du es noch schaffst einmal ein leeres Fenster mit einer bestimmten Hintergrundfarbe zu erzeugen?

Re: Problem beim initialisieren eines OpenGL Fensters

Verfasst: Mo Mär 16, 2009 4:12 pm
von cloidnerux
Achso Danke. Jezt Funktionierts.
Nur so eine Frage am Rande: Weshalb stopfst du deinen Code so mit den verschiedensten Dingen für ein Spiel voll bevor du es noch schaffst einmal ein leeres Fenster mit einer bestimmten Hintergrundfarbe zu erzeugen?
Weil ich davon ausging das das mit dem Füllen Funktioniert, was es auch jezt tut, nur durch einen befehl mehr im Code.