0
我目前正在嘗試使用SDL和glew在C++中編程一個小型遊戲。我的問題是,每當我嘗試使用glew的函數(例如:glMatrixMode(GL_PROJECTION)),我得到這個錯誤:GL_INVALID_ENUM。INVALID_ENUM使用glew
這就是我創建的窗口:
SDL_Init(SDL_INIT_EVERYTHING);
SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE);
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3);
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 2);
window = SDL_CreateWindow(title.c_str(), SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, width, height, SDL_WINDOW_OPENGL | SDL_WINDOW_RESIZABLE);
context = SDL_GL_CreateContext(window);
SDL_GL_SetSwapInterval(1);
這就是我如何初始化GLEW方式:
glewExperimental = GL_TRUE;
GLenum res = glewInit();
if (res != GLEW_OK) fprintf(stderr, "Error: '%s'\n", glewGetErrorString(res));
我嘗試禁用glewExperimental藏漢但什麼也沒有改變。
好,'glMatrixMode'本身就是一個*** ***核心的OpenGL 3.2上下文無效的API調用。枚舉「GL_PROJECTION_MATRIX」只是錦上添花。如果您想使用API的棄用部分,則需要使用*兼容性*配置文件。 'glMatrixMode'也不是一個glew函數。 – 2014-11-06 20:38:18
如何更改爲兼容性配置文件? – obsilp 2014-11-07 12:39:20
我發現它(SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK,SDL_GL_CONTEXT_PROFILE_COMPATIBILITY)。但我仍然得到錯誤。 – obsilp 2014-11-07 12:41:27