INVALID_ENUM using glew
INVALID_ENUM using glew
我目前正在尝试使用SDL和glew在c++中编程一个litte游戏。我的问题是,每当我尝试使用glew的函数(例如:glMatrixMode(GL_PROJECTION))时,我都会收到以下错误:GL_INVALID_ENUM。
这就是我创建窗口的方式:
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,但它什么也没改变。
问题是我使用了OpenGL的核心配置文件,而不是使用兼容性配置文件来使用API中不推荐使用的部分。要解决此问题,应更换
SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE);
带有:
SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_COMPATIBILITY);
相关文章:
- "using namespace std;"在C++的作用是什么?
- vector<vector<double>> to mxArray using memcpy
- Using C++ CryptAPI:CNG Create CSR
- GLEW/GLUT:调用init并创建一个窗口后,取消初始化并重新初始化?
- STLPort using C++11
- 函数中的 c++ using 语句,后跟函数名称(对于 ADL?
- Using getchar_unlocked()
- 类作用域的类型别名"using":[何时]方法中的用法可以先于类型别名?
- 嵌套命名空间的"using"指令,但需要命名内部命名空间
- 为什么"using System;"不被视为不良做法?
- 为什么需要检查 GLAD 或 GLEW 是否正确初始化?
- 现代OpenGL和GLEW Libraray的编译错误
- 为什么我需要做'using namespace std'而不是"使用 std::cout"?
- 'using namespace'实现细节的便捷方法(仅标头库)?
- 使用 CMake 和 Visual Studio 2019 编译 GLEW?
- 使用 MinGW 在 Windows 上构建 GLEW 时遇到问题
- 无法链接 GLEW 库
- C++ OpenGL Project Setup using GLEW, assimp, SDL2 and CMake
- INVALID_ENUM using glew
- Using GLEW with Qt 5.x