Je voudrais reproduire des tutoriels (rendu de sprite), qui utilisent la version OpenGL> = 3.3.Comment utiliser un profil OpenGL différent?
Shaders de géométrie par exemple ont été introduits en 3.2, et je reçois cette erreur:
error: ‘GL_GEOMETRY_SHADER’ was not declared in this scope
Je mis à jour mon chauffeur mesa au plus tard; Je ne comprends pas vraiment, comment je peux choisir une version plus récente d'OpenGL lors de la compilation/liaison en C++:
➜ glxinfo | « Version » grep
server glx version string: 1.4
client glx version string: 1.4
GLX version: 1.4
Version: 17.1.4
Max core profile version: 4.5
Max compat profile version: 3.0
Max GLES1 profile version: 1.1
Max GLES[23] profile version: 3.1
OpenGL core profile version string: 4.5 (Core Profile) Mesa 17.1.4
OpenGL core profile shading language version string: 4.50
OpenGL version string: 3.0 Mesa 17.1.4
OpenGL shading language version string: 1.30
OpenGL ES profile version string: OpenGL ES 3.1 Mesa 17.1.4
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.10
Je ne peux pas interpréter vraiment, mais il dit qu'il ya une sorte de profil de base en utilisant la version 4.5. Comment utiliser ce profil?
J'initialize le contexte de GL dans mon code comme ceci:
if(!glfwInit()) e_glfw_init();
m_window = glfwCreateWindow(WINDOW_WIDTH, WINDOW_HEIGHT, WINDOW_TITLE.c_str(), nullptr, nullptr);
if(m_window == nullptr) e_window_context();
glfwMakeContextCurrent(m_window);
glewExperimental = true;
if(glewInit() != GLEW_OK) e_glew_init();
Comment avez-vous initialiser votre contexte? – BDL
Quels sont les en-têtes/bibliothèques de chargement OpenGL que vous utilisez? –
@NicolBolas Je compris ces en-têtes: 'GL/glew.h' ' GLFW/glfw3.h' 'GLM/glm.hpp' ' GL/glu.h' 'GLM/gtc/type_ptr .hpp' –