Opengl es 混合使用OpenGL ES 1和OpenGL ES 2

Opengl es 混合使用OpenGL ES 1和OpenGL ES 2,opengl-es,Opengl Es,是否可以混合使用OpenGL ES 1和OpenGL ES 2调用?假设您使用的库在OpenGL ES 1中实现了一些例程,而您现有的代码库是OpenGL ES 2。假设它们在不同的渲染过程中进行渲染,那么执行此操作的好方法是什么?OpenGL ES 2.0与OpenGL ES 1.x不向后兼容。根据定义,这意味着2.0与1.x不兼容。大部分情况下 根据您未声明的语言和与GL ES的绑定,您可能会重新编译为ES 1.x for ES 2.0编写的代码。或者初始化ES 2.0会导致所有GL功能路由

是否可以混合使用OpenGL ES 1和OpenGL ES 2调用?假设您使用的库在OpenGL ES 1中实现了一些例程,而您现有的代码库是OpenGL ES 2。假设它们在不同的渲染过程中进行渲染,那么执行此操作的好方法是什么?

OpenGL ES 2.0与OpenGL ES 1.x不向后兼容。根据定义,这意味着2.0与1.x不兼容。大部分情况下

根据您未声明的语言和与GL ES的绑定,您可能会重新编译为ES 1.x for ES 2.0编写的代码。或者初始化ES 2.0会导致所有GL功能路由到那里。这意味着,如果ES1.x和2.0共享某个函数,那么调用该函数的代码将调用初始化的任何GL ES版本。同样,您没有说什么语言以及如何初始化它

ES中的某些功能与ES 1.1和ES 2.0的工作原理大致相同。我想说,纹理初始化和设置没有太大的变化,你应该阅读规格,看看有多少变化。而实际的数组绘图调用gldrawArray,glDrawElements或多或少是相同的。一些核心组件,如glViewport、gldeptrangef等都是相同的


但是顶点数组的其他使用方式、即时模式等都是不同的和不兼容的。

OpenGL ES 2.0与OpenGL ES 1.x不向后兼容。根据定义,这意味着2.0与1.x不兼容。大部分情况下

根据您未声明的语言和与GL ES的绑定,您可能会重新编译为ES 1.x for ES 2.0编写的代码。或者初始化ES 2.0会导致所有GL功能路由到那里。这意味着,如果ES1.x和2.0共享某个函数,那么调用该函数的代码将调用初始化的任何GL ES版本。同样,您没有说什么语言以及如何初始化它

ES中的某些功能与ES 1.1和ES 2.0的工作原理大致相同。我想说,纹理初始化和设置没有太大的变化,你应该阅读规格,看看有多少变化。而实际的数组绘图调用gldrawArray,glDrawElements或多或少是相同的。一些核心组件,如glViewport、gldeptrangef等都是相同的


但是顶点数组的其他使用方式、即时模式等都不同且不兼容。

您可以在同一应用程序中混合使用OpenGL ES 2.0和OpenGL ES 1.1,但不能将来自两个不同API的命令与单个上下文绑定混合使用。一旦在ES 2.0上下文绑定上发出ES 1.1 only GL命令,或者反之亦然,您的应用程序就会崩溃,除非您意识到这一点,否则不清楚为什么会崩溃

创建上下文时,您必须选择正在使用的API,并在绑定该上下文时为每个发出的GL命令使用该API

因此,就在一个应用程序中混合使用两个API而言,没有任何东西可以阻止您在一个线程上绑定ES 1.1上下文,并在另一个线程上具有ES 2.0上下文,但在该线程上仅发出ES 2.0命令的同一应用程序中对该线程发出ES 1.1调用


但正如《捉鬼者》中的绅士们所说:不要越过小溪

可以在同一个应用程序中混合使用OpenGL ES 2.0和OpenGL ES 1.1,但不能将来自两个不同API的命令与单个上下文绑定混合使用。一旦在ES 2.0上下文绑定上发出ES 1.1 only GL命令,或者反之亦然,您的应用程序就会崩溃,除非您意识到这一点,否则不清楚为什么会崩溃

创建上下文时,您必须选择正在使用的API,并在绑定该上下文时为每个发出的GL命令使用该API

因此,就在一个应用程序中混合使用两个API而言,没有任何东西可以阻止您在一个线程上绑定ES 1.1上下文,并在另一个线程上具有ES 2.0上下文,但在该线程上仅发出ES 2.0命令的同一应用程序中对该线程发出ES 1.1调用

但正如《捉鬼者》中的绅士们所说:不要越过小溪