View Full Version : [OpenGL] Versione 4.x non installata e programma che non funziona correttamente
Sto studiando il libro opengl programming guide 8th edition che contiene esempi di codice basati sulle opengl versione 4.3.
Devo fare un po' di pratica ma ho un problema, mi mostra questo messaggio nella console:
http://s9.postimg.org/ogsdhzi4b/Opengl.jpg (http://postimg.org/image/ogsdhzi4b/)
Non ho la versione 4 delle opengl, ho scaricato ed installato gli ultimi driver per ATI Radeon 4870 ma con il programma Opengl Extension Viewer vedo che la versione opengl sul sistema è la 3.3.
Posso scaricare semplicemente la dll delle nuove Opengl ed inserirla nel progetto (il problema è che non l'ho trovata da nessuna parte)?
La serie 4000 di ATI supporta solo fino ad OpenGL 3.3
Nuoooooooooooooooooooooooooo.
Porcaccia vacca sono fregato allora.
da quel poco che ho letto opengl 3.3 permette di far si che schede video di generazioni precedenti possano supportare parte delle funzionalità introdotte con opengl 4.x. dal punto di vista dele funzionalità, soprattutto se stai imparando, non dovrebbe essere un problema. per compilare i programmi già pronti invece non ho idea delle modifiche che tu debba fare, ci vuole qualcuno più esperto di opengl qui.
Sul portatile ho una Radeon serie 5xxx e quella mi supporta fino alle 4.0, sto cercando di settare lì l'ambiente di lavoro anche se ho un profondo odio per i portatili (e comunque negli esercizi del libro parla di opengl 4.3).
Vedo se lì va meglio e riesco a fare almeno una parte di quello che mi serve.
AnonimoVeneziano
26-11-2013, 14:14
OpenGL 3.3 e 4.3 sono praticamente identici con l'unica differenza che la 3.3 non supporta la tessellation e i tessellation shaders e alcune funzionalita' di recente introduzione piuttosto avanzate sulle quali probabilmente non ha molto senso concentrarsi se sei alle prime armi.
Potresti essere in grado di compilare facilmente l'esempio in questione e farlo funzionare richiedendo un profilo OpenGL 3.3 invece che 4.3 o superiore in fase di creazione del contesto OpenGL.
Cerca nel codice una chiamata alla funzione wglCreateContextAttribsARB e modifica i contnenuti dell' array che viene passato a quella funzione che dovrebbe essere della forma:
const int attribList[] =
{
WGL_DRAW_TO_WINDOW_ARB, GL_TRUE,
WGL_SUPPORT_OPENGL_ARB, GL_TRUE,
WGL_DOUBLE_BUFFER_ARB, GL_TRUE,
WGL_PIXEL_TYPE_ARB, WGL_TYPE_RGBA_ARB,
WGL_COLOR_BITS_ARB, 32,
WGL_DEPTH_BITS_ARB, 24,
WGL_STENCIL_BITS_ARB, 8,
...
...
0, //End
};
Nell'array cerca gli attributi WGL_CONTEXT_MAJOR_VERSION_ARB e WGL_CONTEXT_MINOR_VERSION_ARB e assicurati di cambiare 4 e 3 in 3 e 3
Ciao
OpenGL 3.3 e 4.3 sono praticamente identici con l'unica differenza che la 3.3 non supporta la tessellation e i tessellation shaders e alcune funzionalita' di recente introduzione piuttosto avanzate sulle quali probabilmente non ha molto senso concentrarsi se sei alle prime armi.
Potresti essere in grado di compilare facilmente l'esempio in questione e farlo funzionare richiedendo un profilo OpenGL 3.3 invece che 4.3 o superiore in fase di creazione del contesto OpenGL.
Cerca nel codice una chiamata alla funzione wglCreateContextAttribsARB e modifica i contnenuti dell' array che viene passato a quella funzione che dovrebbe essere della forma:
const int attribList[] =
{
WGL_DRAW_TO_WINDOW_ARB, GL_TRUE,
WGL_SUPPORT_OPENGL_ARB, GL_TRUE,
WGL_DOUBLE_BUFFER_ARB, GL_TRUE,
WGL_PIXEL_TYPE_ARB, WGL_TYPE_RGBA_ARB,
WGL_COLOR_BITS_ARB, 32,
WGL_DEPTH_BITS_ARB, 24,
WGL_STENCIL_BITS_ARB, 8,
...
...
0, //End
};
Nell'array cerca gli attributi WGL_CONTEXT_MAJOR_VERSION_ARB e WGL_CONTEXT_MINOR_VERSION_ARB e assicurati di cambiare 4 e 3 in 3 e 3
Ciao
Grazie!
Avevo risolto rimuovendo il file opengl32.dll dal progetto che generava alcuni problemi e modificando la versione utilizzata con:
glutInitContextVersion(3, 3);
Ora stavo guardando se trovavo la chiamata a wglCreateContextAttribsARB ma nel programma di esempio che cercavo di compilare non c'è.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.