Opengl es 在使用OpenGLES的iOS上,如何拥有多个视图?

Opengl es 在使用OpenGLES的iOS上,如何拥有多个视图?,opengl-es,ios,multiple-views,Opengl Es,Ios,Multiple Views,在iOS上,如果我想覆盖两个视图,然后从一个场景混合到另一个场景 例如:从游戏菜单到实际游戏。首先使用菜单,然后单击(“开始游戏”)加载游戏视图,并从菜单到游戏阶段进行良好的混合/转换 这不是混合的具体问题,而是如何在OpenGL应用程序中处理多个视图。我已经读过一些关于如何绘制线条、对象、闪电、颜色和类似的基础知识,但当涉及到将它们全部放在一个真实的(而不仅仅是一个静态视图)OpenGLES应用程序中时,我完全是新手。我的意思是你必须使用不同的观点,对吗?或者,我们在日常UIKit编程中习惯的

在iOS上,如果我想覆盖两个视图,然后从一个场景混合到另一个场景

例如:从游戏菜单到实际游戏。首先使用菜单,然后单击(“开始游戏”)加载游戏视图,并从菜单到游戏阶段进行良好的混合/转换


这不是混合的具体问题,而是如何在OpenGL应用程序中处理多个视图。我已经读过一些关于如何绘制线条、对象、闪电、颜色和类似的基础知识,但当涉及到将它们全部放在一个真实的(而不仅仅是一个静态视图)OpenGLES应用程序中时,我完全是新手。我的意思是你必须使用不同的观点,对吗?或者,我们在日常UIKit编程中习惯的具有不同视图控制器和视图的设计模式在OpenGLES中不适用吗?因为我不能让它发生。我找不到任何例子。

我找到了我想要的

它为您提供层、场景过渡、随时可用的菜单、精灵等。。 所以我不再为如何做到这一点而烦恼,现在就开始使用可可豆


如果您也是OpenGL新手,请不要犹豫,它将使您的生活轻松147*倍。顺便说一句。。。您还可以将其与3d相结合。

如果您希望在应用程序中以CaeAglayers的形式同时显示多个OpenGL视图,那么需要记住一点:

[EAGLContext setCurrentContext:oglContext]

将更改上下文,不仅针对当前正在执行的视图,而且针对应用程序的所有EAGL视图。这可以通过创建其他正在冻结的视图来实现,因为OpenGL调用现在将转到执行
[EAGLContext setCurrentContext:oglContext]
的最后一个视图

为了避免这种情况,在进行任何OpenGL调用之前,每次调用视图实例时都必须调用
[EAGLContext setCurrentContext:oglContext]

在我的应用程序中,我只在视图的
initWithFrame
中设置一次上下文。这几年来一直运作良好。一旦我创建了该视图的第二个实例,第一个视图就停止更新。现在,在进行任何CVOpenGLES调用之前,我在更新调用中设置了上下文