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

Aktuelle Zeit: Di Apr 23, 2024 20:43

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Fr Apr 12, 2013 16:42 
Offline
DGL Member

Registriert: Sa Apr 14, 2012 14:28
Beiträge: 52
Programmiersprache: c++
Zitat:
Lösung:

Oh Mann... manche Dinge sind doch einfach nur bescheuert... Dank der Jungs von GameDev.net kam ich nach und nach auf die Lösung. Mir wurde ein sehr nützliches Tool empfohlen: "OpenGL extensions viewer" Das zeigt einem eine genaue Aufschlüsselung über die aktuell unterstützten Extensions und verwendeten Treiber an. Dadurch kam ich dann ersteinmal darauf, dass meine Intel HD3000 Treiber nicht aktuell sind. Neue runter geladen und siehe da... OpenGL 3.1 war auf einmal verfügbar... ist aber immernoch 1.2 Versionen vom ziel entfernt. Also nach der Unterstützung des HD3000 Chipsatzes für OpenGl gesucht. Toll... nur bis 3.1... was mach ich jetzt?... ist doch einfach sch...., dass man mehrere Treiber braucht und einer davon nur bis 3.1 geht... Moment wieso mehrere Treiber und warum hab ich eigentlich 2 Grafikkarten in meinem Gerätemanger?

Code:
  1.  
  2. while (stupid == true)
  3.     {
  4.     Hit_Table(&Head)
  5.     }
  6.  



Irgendwie verwendet mein Rechner standardmäßig die onboard-Karte. Nachdem ich ihn mit den NVidea Einstellungen gezwungen habe für Visual Studio die Hardwarebeschleunigung zu verwenden hats geklappt. Version 4.3 ist nun ohne einschränkungen verfügbar... auf so nen Mist muss man erstmal kommen -.-

Wenn wer weiß, wo ich die Einstellung finde um zu verhindern, dass mein Rechner die onboard-Karte als Standard nutzt, immer her mit der info...

MfG Der Troll


Hi,

entschuldigt bitte, dass ich in so kurzer Zeit nochmal nerven muss und nen neuen Thread aufmache zu einem ähnlichen Thema, allerdings ist der alte bereits gelöst und hatte ganz andere Ursachen, aber nun zum thema:

Ich versuche ja grad einen OpenGl 3+ Context zu erzeugen. Dazu habe ich mir mal die swiftless Tutorials herunter geladen. Bisher hatte ich immer nur das erste betrachtet weshalb mir das Problem gar nicht aufgefallen war. Jetzt habe ich aber mal das 4. kompiliert und alles was ich zu sehen bekomme ist ein weißes Fenster, dabei sollten eigentlich ein paar Strukturen erkennbar sein. Der Fehler läßt sich denke ich auch ganz gut eingrenzen:

Code:
  1.     int attributes[] = {
  2.         WGL_CONTEXT_MAJOR_VERSION_ARB, 3, // Set the MAJOR version of OpenGL to 3
  3.         WGL_CONTEXT_MINOR_VERSION_ARB, 2, // Set the MINOR version of OpenGL to 2
  4.         WGL_CONTEXT_FLAGS_ARB, WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB, // Set our OpenGL context to be forward compatible
  5.         0
  6.     };
  7.  
  8.     if (wglewIsSupported("WGL_ARB_create_context") == 1) { // If the OpenGL 3.x context creation extension is available
  9.         hrc = wglCreateContextAttribsARB(hdc, NULL, attributes); // Create and OpenGL 3.x context based on the given attributes
  10.         wglMakeCurrent(NULL, NULL); // Remove the temporary context from being active
  11.         wglDeleteContext(tempOpenGLContext); // Delete the temporary OpenGL 2.1 context
  12.         wglMakeCurrent(hdc, hrc); // Make our OpenGL 3.0 context current
  13.     }
  14.     else {
  15.         hrc = tempOpenGLContext; // If we didn't have support for OpenGL 3.x and up, use the OpenGL 2.1 context
  16.     }
  17.  
  18.     const GLubyte *glVersionString = glGetString(GL_VERSION); // Get the version of OpenGL we are using
  19.     int glVersion[2] = {-1, -1}; // Set some default values for the version
  20.     glGetIntegerv(GL_MAJOR_VERSION, &glVersion[0]); // Get back the OpenGL MAJOR version we are using
  21.     glGetIntegerv(GL_MINOR_VERSION, &glVersion[1]); // Get back the OpenGL MAJOR version we are using
  22.  


as ist der Original Code von Swiftless. Wenn ich mir nun die Versionsnummern per Haltepunkt ausgeben lasse, kommt immer -1,-1 bei raus. Wenn ich die Variablen bei der Deklaration ändere halt die entsprechenden Werte. Folglich gibt glGetIntegerv nichts zurück. Kommentiere ich den Teil mit dem neuen Kontext aus, erhalte ich als Versionsnummer 3.0. Hätte eigentlich mit 2.0 gerechnet, sehr seltsam. Es scheint also dass der neue Kontext nicht erstellt werden kann, aber warum?

Es ist wie gesagt der original-Code von Swiftless. Ich habe eine NVidia GeForce 540M mit aktuellsten Treibern (angeblich OGL 4.3 tauglich). Ich benutze Visual Studio 2010 und habe Glew1.9 auf dem Rechner. Hat jemand eine Idee woran es liegen könnte?

MfG Der Troll


Zuletzt geändert von Der Troll am Sa Apr 13, 2013 02:49, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Fr Apr 12, 2013 23:02 
Offline
DGL Member

Registriert: Sa Apr 14, 2012 14:28
Beiträge: 52
Programmiersprache: c++
Okay, ich kann den Fehler nun etwas weiter eingrenzen. Er erzeugt tatsächlich ersteinmal einen OpenGL 3.0 Kontext. Sollte es nicht eigentlich 2.irgendwas sein?

Ich habe mir auch mal ein Tutorial das mit freeglut arbeitet herunter geladen. In beiden Fällen funktioniert alles, solange ich ihm sage er soll auf Version 3.0 switchen (also die, die er eh schon hat). Gebe ich andere Versionsnummern an kommt nur noch Murks bei raus.

Also entweder stimmt was mit meinen Treibern nicht, meine VS einstellungen sind falsch (habe mittlerweile auf 2012 geupgradet) oder die verwendete glew bib ist mit meinem System nicht kompatibel.

Irgendwer ne Idee, wo der Fehler liegen kann?


EDIT:

Vielleicht kann mir ja jemand von euch ein fertig kompiliertes OpenGL 3.3+ Programm schicken. So kann ich vielleicht ausschließen, dass es sich um ein Problem mit dem Grafik-Treiber im generellen handelt.


EDIT2:

Lösung ist im Startpost... Ich hasse Computer... -.-


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Sa Apr 13, 2013 08:54 
Offline
DGL Member

Registriert: Do Mär 05, 2009 20:17
Beiträge: 284
Wohnort: Kaiserslautern
Der Troll hat geschrieben:
Zitat:
Lösung:


Wenn wer weiß, wo ich die Einstellung finde um zu verhindern, dass mein Rechner die onboard-Karte als Standard nutzt, immer her mit der info...

MfG Der Troll


Bei meinem Rechner muß ich das im BIOS einstellen.. Der wurde ursprünglich mit on-board grafik ausgeliefert und ich hab ne andere reingebaut. Ich erinner mich dunkel, das ich im BIOS zumindest noch den von der Onboard Graka abgezwackten System RAM wieder fürs System bereitstellen mußte... (schwache Formulierung, du weißt aber sicher was ich meine)
Gruß

Wolfgang


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 44 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:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.119s | 17 Queries | GZIP : On ]