tutorial triangulos triangulo triangle iluminacion how c++ opengl qt-creator sfml glew

c++ - triangulos - triangulo en opengl



Error al inicializar GLEW. Falta la versiĆ³n GL (4)

A solicitud del usuario 3648895, estoy publicando mi respuesta fuera de los comentarios por separado.

Para aquellos que usan GLFW en lugar de SFML, debe llamar a glewInit () después de glfwMakeContextCurrent

Intenté configurar SFML 2.0 con la última versión del creador de qt, configuré SFML correctamente e importé un juego pequeño que escribí en Visual Studio. Tras la compilación, me sale esto:

Lo que intenté

  • Reinstalando todo el qt SDK y qt creator IDE desde cero
  • Reinstalando SFML
  • reinstalando mingw
  • Intenté escribir un programa simple para asegurarme de que no es mi código, el programa se compila correctamente pero cuando cierro la aplicación, obtengo errores de OpenGL, lo cual no es normal.
  • Intenté publicar un hilo en los foros de SFML pero fue en vano.
  • Buscar en Google los errores muestra algunos resultados, que son específicos de OpenGL y que están demasiado localizados, no se aplican a mí, no hay respuesta para que esto suceda en SFML 2.0

Detalles adicionales

  • Estoy ejecutando Windows XP SP3, la última versión de mingw y qt SDK y SFML

  • El código con el que trato de trabajar funciona sin ningún error o advertencia en Visual Studio 2010 y Code :: Blocks

  • Sí, estoy seguro de que SFML está configurado en mi IDE, el código básico funciona pero muestra esos errores y el código más avanzado muestra todos los sprites y el texto como cuadros.
  • Yo no compilé SFML yo mismo

  • Mi versión de gcc es 4.6.2

  • Mi gcc es un DW2

No obtengo resultados, ni siquiera sé cómo remotamente acercarme a solucionar esto, ni siquiera por dónde empezar.

EDITAR No puedo mostrarle todo mi código, tiene más de 20 archivos y estoy casi en un 90% seguro de que no es mi código, lo dije arriba: Puedo ejecutar este código sin ninguna advertencia o error en cualquier IDE excepto qt creador.


Es porque no estás inicializando OpenGL. Ejemplo con el exceso de lib.

Incorrecto:

glewInit(); // ERROR MISSING GL VERSION glutInitDisplayMode(GLUT_RGB);

Bueno:

glutInitDisplayMode(GLUT_RGB); glewInit();

EDITAR Creo que para SFML:

sf::Window App(sf::VideoMode(400, 400, 32), "Window"); glewInit();

EDIT 2 Prueba este código.

#include <SFML/Window.hpp> #include <iostream> #include <GL/glew.h> int main(int, const char**) { GLenum err; std::cout << "Start" << std::endl; std::cout << "Test 1" << std::endl; if ((err = glewInit()) != GLEW_OK) std::cout << glewGetErrorString(err) << std::endl; std::cout << "Init window" << std::endl; sf::Window app(sf::VideoMode(400, 400, 32), "Windows"); std::cout << "Test 2" << std::endl; if ((err = glewInit()) != GLEW_OK) std::cout << glewGetErrorString(err) << std::endl; std::cout << "End" << std::endl; return 0; }

Mi salida:

Start Test 1 Missing GL version Init window Test 2 End

Compile con: g++ -W -Wall -Werror main.cpp -lsfml-window -lGLEW

Buena suerte ;)


Para aquellos que utilizan las funciones de Renderer de SDL2, debe ser justo después de SDL_CreateRenderer .