例如,我使用 GL_LUMINANCE_ALPHA 将两个组件数据传输到纹理。有人告诉我,像 GL_LUMINACE_ALPHA 这样的内部格式常量在 OpenGL 3.0(可能是 4.0?)或更高版本中已弃用,因此请使用 GL_RG 或 GL_RG8 等。
但是,我的目标 OpenGL 版本是 2.0 或更高版本,并且 OpenGL 2.0 的规范不包含 GL_RG/GL_RG8。在这种情况下,我认为有三种可能:
- 如果程序可以在仅支持 OpenGL 2.0 的设备上运行良好,请使用 GL_RG/GL_RG8。
- 如果程序可以在 OpenGL 版本高到不推荐使用旧常量的设备上运行良好,请保留旧常量。
- 在运行时检测 OpenGL 版本并为每个版本切换常量。
我应该选择什么?我不想拿 3。除非我必须这样做,因为它使事情变得更加困难和复杂。