【发布时间】:2017-05-14 19:54:36
【问题描述】:
最近我用 OpenGL 和 LWJGL 2 (Java) 创建了自己的游戏。在那之后,我想提高我的编程技能,并开始学习如何将 OpenGL 与 C++ 结合使用。
对于 LWJGL,我可以使用 #version 330,但对于 C++ 和 SDL2,我只能使用 #version 110,但 glGetString(GL_VERSION) 返回 3.0 Mesa 12.0.6。
我像这样初始化我的窗口:
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;
}
我的问题在哪里?
【问题讨论】:
-
尝试在
SDL_Init()之后设置SDL_GL_SetAttribute()调用... -
glxinfo | grep "shading language version"有什么要说的?