最近OpenGLとLWJGL 2(Java)を使用して独自のゲームを作成しました。その後、プログラミングスキルを向上させたいと思って、C++でOpenGLを使う方法を学び始めました。 LWJGLでOpenGLのバージョンがサポートされているシェーダのバージョンと等しくない
私は#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_GL_SetAttribute()' SDL_Init '後の呼び出し()' ... –
何 ' glxinfo | grep "シェーディング言語バージョン"とは何ですか? – keltar