【发布时间】:2021-12-31 21:00:30
【问题描述】:
我想使用glTexStorageXX() 加载一些纹理,但如果该功能不适用于平台,也可以退回到glTexImageXX()。
有没有办法检查这些功能在平台上是否可用?如果使用 OpenGL 3.3,我认为 glew.h 可能会尝试将 GL_ARB_texture_storage 扩展加载到同一个函数指针中,但我不确定如何检查它是否成功。是检查函数指针那么简单,还是更复杂?
(另外,我猜测glew.h 的工作方式可能是错误的,它可能不使用函数指针,这可能不是我可以进行的运行时检查?如果是这样,我会。 ..需要为不同版本的OpenGL编译可执行文件?)
if (glTexStorage2D) {
// ... calls that assume all glTexStorageXX also exist,
// ... either as core functions or as ARB extensions
} else {
// ... calls that fallback to glTexImage2D() and such.
}
【问题讨论】: