OpenGL与OpenGLES2的兼容性
我一直在尝试编写一些可以在任何地方运行的opengl代码,但不要过多限制自己.我想在仅支持它的设备上使用opengles2,并在支持的情况下使用opengl核心.
此外,我希望能够在运行时选择我使用的那个(当然,如果可用的话). 我的问题是: 我曾想过动态加载库并加载所有使用过的函数指针,但对于可能有更简单答案的东西来说,这是一项巨大的工作. 我知道GLEW,但不幸的是,大多数Linux发行版都发布了一个仍然不兼容GLES2的GLEW版本(debian,我在看你).它只是段错误. 你们这样做怎么样? opengl函数链接的任何其他方法? 解决方法
我在航空航天工业,我开始使用各种OpenGL子集,因为每个硬件提供商都有自己的版本. (我希望能够完整记录……好吧……任何东西.)看来我们确实有类似的问题.我会告诉你到目前为止我学到的东西.
首先,您将希望发展成为您可以获得的所有配置文件中最大的最佳超集.使用硬件供应商提供的最新版本的OpenGL标头.这样你的程序至少可以解决编译部分. BGRA宏/枚举将成为您的GLESv2运行时的一部分,但如果您的平台仅支持RGBA,您肯定永远不会在运行时使用它. 基于平台功能的运行时决策基于OpenGL扩展列表.将扩展列表与应用程序使用的任何内容进行比较,停用不支持的分支并激活支持的分支.您可以通过这种方式区分OpenGL和GLES. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |