Récemment, j'ai créé mon propre jeu avec OpenGL et LWJGL 2 (Java). Après cela, j'ai voulu améliorer mes compétences en programmation et j'ai commencé à apprendre à utiliser OpenGL avec C++.La version OpenGL n'est pas égale à la version de shader supportée
Avec LWJGL je pourrais utiliser #version 330
mais avec C++ et SDL2 je ne peux utiliser #version 110
, mais glGetString(GL_VERSION)
retours 3.0 Mesa 12.0.6
.
ma fenêtre, j'initialiser comme ceci:
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3);
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 3);
SDL_Init(SDL_INIT_EVERYTHING);
SDL_GL_SetAttribute(SDL_GL_RED_SIZE, 8);
SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, 8);
SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 8);
SDL_GL_SetAttribute(SDL_GL_ALPHA_SIZE, 8);
SDL_GL_SetAttribute(SDL_GL_BUFFER_SIZE, 32);
SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 24);
m_window = SDL_CreateWindow(title.c_str(), SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, width, height, SDL_WINDOW_OPENGL|SDL_WINDOW_RESIZABLE);
m_glContext = SDL_GL_CreateContext(m_window);
GLenum status = glewInit();
if(status != GLEW_OK){
std::cerr << "Glew failed!" << std::endl;
}
Où est ma question?
Essayez paramètre 'SDL_GL_SetAttribute()' 'après les appels SDL_Init()' ... –
Qu'est-ce que ' glxinfo | grep "version de la langue d'ombrage" 'dois-je dire? – keltar