是否可以混合使用OpenGL ES 1和OpenGL ES 2调用?假设你正在使用在OpenGL ES 1中实现了一些例程的库,并且你现有的代码库是OpenGL ES 2.那么假设它们在不同渲染过程中渲染,那么这样做会是一个好方法吗?混合OpenGL ES 1和OpenGL ES 2
1
A
回答
4
OpenGL ES 2.0不向后兼容OpenGL ES 1.x.根据定义,非常多,这意味着2.0不是兼容与1.x.大部分。
根据语言和GL ES(您没有声明)的绑定,您可能会重新编译为ES 2.0编写的代码。或者初始化ES 2.0会导致所有GL功能在那里被路由。这意味着如果ES 1.x和2.0共享某个函数,那么调用该函数的代码将调用任何GL ES版本初始化的代码。再一次,你没有说什么语言,以及你如何初始化它。
ES中有一些功能与ES 1.1和ES 2.0的功能差不多。我会说纹理的初始化和设置没有太大的改变(你应该阅读规格,看看有多少改变)。而实际的数组绘图调用(glDrawArrays
,glDrawElements
)或多或少是相同的。而像glViewport
,glDepthRangef
等一些核心组件是相同的。
但其他任何东西(如何使用顶点数组,立即模式等)是不同的和不兼容的。
4
您可以在同一个应用程序中混用OpenGL ES 2.0和OpenGL ES 1.1,但不能将来自两种不同API的命令与单个上下文绑定混合使用。只要您在ES 2.0上下文绑定中发出仅ES 1.1的GL命令,反之亦然,您的应用程序就会崩溃,并且它不会很明显,除非您意识到这一点,否则它会崩溃。
当创建上下文时,您必须选择您正在使用的API,并在绑定该上下文时发出的每个GL命令都使用它。
因此,就在一个应用程序中混合使用这两个API而言,没有什么能够阻止您在一个线程上绑定ES 1.1上下文,并且在您拥有的同一个应用程序的该线程上只发出ES 1.1调用在另一个线程上的ES 2.0上下文,只有在该线程上发出的ES 2.0命令。
但是正如捉鬼者们说的那样:“不要过河!”。
相关问题
- 1. OpenGL es 2.0混合问题
- 2. Alpha与OpenGL ES 2.0混合?
- 3. OpenGL ES 2.0的混合
- 4. OPENGL ES MatrixGrabber和GLU.gluUnproject()混乱
- 5. OpenGL ES:需要OpenGL ES(1.x和2.0)API列表
- 6. OpenGL或OpenGL ES
- 7. Opengl ES和texcoord
- 8. OpenGL-ES和Cg
- 9. OpenGL ES 1.x vs. 2.x:OpenGL ES 1.x还值得学习吗?
- 10. OpenGL ES 1.0上的混合函数(Android)
- 11. OpenGL ES 2.0,与所有东西混合
- 12. alpha混合在opengl es不工作
- 13. 的OpenGL ES的Android混乱
- 14. Opengl ES混色模式
- 15. OpenGL vs OpenGL ES和OpenGL 1.x vs OpenGL 2.0要学什么?
- 16. OpenGL ES 2.0:Alpha混合问题
- 17. 基于GLPaint的OpenGL ES混合问题
- 18. OpenGL ES - 粒子效应的混合
- 19. iPhone OpenGL ES不正确的alpha混合
- 20. OpenGL到OpenGL-ES - glRectf()
- 21. 照明和OpenGL ES
- 22. 从OpenGL ES 1.1过渡到OpenGL ES 2.0
- 23. iOS OpenGL ES与Android OpenGL ES兼容?
- 24. OpenGL ES 1.x着色器
- 25. OpenGL ES 1剪裁对象
- 26. 学习OpenGL ES 1.x
- 27. Android OpenGL ES和2D
- 28. 将OpenGL ES 2移植到OpenGL
- 29. OpenGL ES 2球体渲染
- 30. openGL ES警告