gpt4 book ai didi

ios - 除了使用 Core Animation 感知渲染缓冲区之外,还有其他显示 OpenGL 内容的方法吗?

转载 作者:行者123 更新时间:2023-11-28 20:35:21 29 4
gpt4 key购买 nike

根据 Apple's OpenGL ES Programming Guide , "如果要向用户显示 [a] 帧缓冲区,请使用特殊的 Core Animation 感知渲染缓冲区。"

文本接着说,要使这个 Core Animation 感知渲染缓冲区,需要使用以下代码“子类化 UIView 为 [the] iOS 应用程序 [和] 覆盖 layerClass 创建 OpenGL ES View ”:

+ (Class) layerClass
{
return [CAEAGLLayer class];
}

但是,如果检查 Apple's GLCameraRipple example它向最终用户显示 OpenGL,layerClass 似乎永远不会被覆盖。对 layerClass 或 CAEAGLLayer 的文本搜索显示它们丢失了。

如果您寻找直接向用户显示的其他方法,Apple 提供了另外两种 OpenGL 方法,但这两种方法似乎都暗示它们不是直接向用户显示,而是用于离屏渲染。 (即“如果帧缓冲区用于执行屏幕外图像处理,则附加渲染缓冲区。如果帧缓冲区图像用作后续渲染步骤的输入,则附加纹理。”)

除了使用 Core Animation 感知渲染缓冲区之外,还有其他显示 OpenGL 内容的方法吗?或者 Apple 是否以某种方式覆盖了图层类,以便 OpenGL 内容以另一种方式成为 Core Animation 感知?

最佳答案

在 GLCameraRipple 示例中,您看不到带有 CAEAGLLayer 支持的子类 UIView 的原因是因为它使用了 GLKView。 GLKView 是作为 GLKit 的一部分在 iOS 5.0 中引入的一个类,它包装了一些通用代码,例如使用 CAEAGLLayer 的显式覆盖及其匹配渲染缓冲区的设置。

这仍在进行中,只是从您那里抽象出来了。要在屏幕上显示 OpenGL ES 内容,您仍然需要以某种方式通过 CAEAGLLayer。

离屏渲染是一种不同的动物,因为你没有附加到显示层,所以不需要层。如果您想渲染到纹理,请将纹理附加为 FBO 的目标,仅此而已。

关于ios - 除了使用 Core Animation 感知渲染缓冲区之外,还有其他显示 OpenGL 内容的方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10725578/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com