Así que este es un doozie;
Tengo una solución OpenGL bastante grande, escrita en core versión 3.2 con GLSL 1.5 en Windows 7. Estoy usando GLEW y GLM como bibliotecas de ayuda. Cuando creo una ventana, estoy usando las siguientes líneas:No se puede implementar GLFW 3.2
// Initialize main window
glewExperimental = GL_TRUE;
glfwOpenWindowHint(GLFW_OPENGL_VERSION_MAJOR, 3); // Use OpenGL Core v3.2
glfwOpenWindowHint(GLFW_OPENGL_VERSION_MINOR, 2);
glfwOpenWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
if(!glfwOpenWindow(Game::WINDOW_X, Game::WINDOW_Y, 0, 0, 0, 0, 32, 0, GLFW_WINDOW))
{ ...
Si Omito las tres funciones glfwOpenWindowHint, la aplicación se bloquea mis controladores de vídeo sobre la llamada a glDrawArrays (GL_TRIANGLES, 0, m_numIndices);
Pero aquí está el truco. Cuando alguien más en mi grupo intenta actualizar y ejecutar la solución, obtienen una ventana en blanco sin geometría. Comentando las tres líneas hace que el programa funcione bien para ellos. Hay una muy buena división entre trabajar con la sugerencia de 3.2core y sin ella. No he podido determinar ninguna diferencia entre nVidia, AMD, computadora de escritorio o computadora portátil.
Lo mejor que pude encontrar fue una sugerencia para agregar glewExperimental = GL_TRUE; como se dice que Glew tiene problemas con el núcleo. No hizo ninguna diferencia. La solución es demasiado grande para publicar el código, pero puedo poner shaders, renderizar código, etc. según sea necesario.
¡Muchas gracias! Esto nos ha estado matando por varios días.
Entonces, ¿funcionó finalmente? – mlvljr
No. GLFW es, de lejos, la solución de ventanas más fácil, pero no es confiable en absoluto. Al desactivar el fuego cruzado en mi computadora, puedo hacer que funcione la mayor parte del tiempo. Todavía no se ejecutará en las máquinas nVidia en nuestro laboratorio. Contacté a los chicos de GLFW en IRC, y solo tienen un desarrollador de Windows. Su respuesta fue "No lo sé". Hice un intento de pasar a SDL, pero eso no crearía un contexto 3.X en ninguna de nuestras máquinas. Todavía usando GLFW, solo de manera no confiable. – AGuyInAPlace
¿Puedes vincular a un ejemplo que se comporta de manera no confiable? Es solo que ayer preparé GLFW + GL3W en un AMD Llano 3650 (siguiendo los consejos de la respuesta del petardo), y aunque el ejemplo rudimentario es 100% correcto, me gustaría saber de posibles puntos de tropiezo. – mlvljr