ios - iOS平台如何获取EGLNativeWindowType?

标签 ios objective-c c opengl-es egl

如何在iOS 平台 中获取EGLNativeWindowType 对象?或实现以下 android 代码的等价物?

为了提供更多见解,我目前正在将原生 Android 应用程序移植到 iOS,它共享一个核心 C 库,而 iOS 项目本身是用 Objective-C 编写的。该项目也使用 EGL 而不是 EAGL。

现有的源代码是标准的C但是使用了Android的NDK; EGLSurface 对象是用 EGLAPI EGLSurface EGLAPIENTRY eglCreateWindowSurface(EGLDisplay dpy, EGLConfig config, EGLNativeWindowType win, const EGLint *attrib_list)

定义的
EGLNativeWindowType win = AndroidMainGetAndroidActivity()->app->window;
EGLSurface eglSurface = eglCreateWindowSurface(e_eglDisplay, config, win, NULL);

我还没有找到任何与 EGLNativeWindowTypeiOS 相关的文档。

最佳答案

iOS 使用 EAGL 作为 OpenGL ES 和底层窗口系统之间的接口(interface)。 EAGL 需要 iOS,因为 EGL 需要 Android 通过 OpenGL ES 绘制。所以你不能在 iOS 上使用 EGL API。

an article 中描述了它们之间的区别以及它们如何很好地工作.

关于ios - iOS平台如何获取EGLNativeWindowType?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38618199/

相关文章:

ios - 添加代码以注册用户通知设置时出现错误结果

ios - Xcode取消ViewDidAppear

c - 为什么在写入使用字符串初始化的 "char *s"时会出现段错误,而不是 "char s[]"?

iOS Swift 给出错误 : Garbage at end when serializing data from json

ios - iOS 图表库的问题

objective-c - 如何在 NSNotificationCenter 中使用参数化方法?

ios - 如何在 AppDelegate 的 didreceiveRemoteNotification 中处理远程推送通知

c - 在 Fedora 16 中找不到 glib.h

在C中从二进制文件转换为十六进制

ios - 在 Firebase 中保存数组