是否有编译器标志或强制OpenGL核心配置文件的其他方式?当我使用glRotatef之类的弃用函数时,我想得到一个错误.
编辑1:我正在使用Linux,但是,我也有兴趣了解如何在Windows中执行此操作
EDIT2:我宁愿在编译时遇到错误,但运行时错误也没问题.
您可以使用gl3.h
而不是编译代码gl.h
.
http://www.opengl.org/registry/api/gl3.h
尝试wglCreateContextAttribsARB()用WGL_CONTEXT_CORE_PROFILE_BIT_ARB
.
或glXCreateContextAttribsARB用GLX_CONTEXT_CORE_PROFILE_BIT_ARB
.
您可能会发现此示例可用作测试平台.
取决于创建 OpenGL 上下文的内容。
如果您使用 GLFW(我真诚地推荐用于独立的 OGL 窗口应用程序),那么您可以在创建窗口之前执行以下操作:
glfwOpenWindowHint(GLFW_OPENGL_VERSION_MAJOR,3);
glfwOpenWindowHint(GLFW_OPENGL_VERSION_MINOR,1);
glfwOpenWindowHint(GLFW_OPENGL_PROFILE,GLFW_OPENGL_CORE_PROFILE);
// the last line shouldn't be necessary
// as you request a specific GL context version -
// - at least my ATI will then default to core profile
Run Code Online (Sandbox Code Playgroud)
请注意,如果您在现代硬件/驱动程序上请求 3.0 之前的 GL 上下文,您可能会在兼容模式下收到最新的可能上下文。检查您的 GPU 返回的内容glGetString(GL_VERSION)
以确保。
如果您使用其他 API 来创建 OpenGL 上下文,请查看其参考手册中的类似功能。
顺便说一句:我相信在编译时出现错误是不可能的 - 您的编译器无法知道在您的请求(如果有的话)之后您将收到什么 OpenGL 上下文。确保您没有使用过版本功能的正确方法是测试glGetError()
.
另外,gl3w
如果您为 Windows 编译,我建议使用扩展包装器。
归档时间: |
|
查看次数: |
8259 次 |
最近记录: |