微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何读取系统的 openGL 常量

如何解决如何读取系统的 openGL 常量

我收到的开放 GL 错误似乎与 MAX_VERTEX_UNIFORM_COMPONENTS_ARB 相关联。 (如答案 here

中所建议的

是什么决定了这个常量(图形硬件、图形驱动程序、openGL 版本?),以及如何在 Linux(nvidia 硬件)下检查它的值?

解决方法

此限制与使用的 gfx 硬件及其驱动程序有关。在 OpenGL 中,您可以使用以下方法在 CPU 端获取此类值:

GLint x;
glGetIntegerv(GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB,&x);

关于我的设置:

Vendor: NVIDIA Corporation
OpenGL 4.5.0 NVIDIA 368.22
Render: GeForce GTX 550 Ti/PCIe/SSE2

它返回:

max vertex uniform components: 4096

为了使用它,您需要使用 OpenGL 1.0 或更好的上下文,并知道所查询内容的数值。这通常存储在 gl.hglext.h 中,在您的情况下是后者,如果您不想包含 glext.h,只需在使用前将其添加到您的代码 (C++) 中:>

#define GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB 0x8B4A

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。