【问题标题】:EGL vs GLES 2.0 on Android (e.g. Java)Android 上的 EGL 与 GLES 2.0(例如 Java)
【发布时间】:2011-09-24 11:21:47
【问题描述】:

(经验丰富的c程序员,pre-shader,固定功能open gl。称职的Java程序员)

我一直在 Android 上使用 GLES,并且已经获得了可以运行的示例(本机和 Java)。特别是带纹理的三角形示例。让我完全困惑的是 Khronos EGL 和 android GLES 接口的“关系”。

这些是并行、独立的接口 (API) 吗? EGL 是否应该是独立于平台的(中性)接口? EGL 似乎完全支持 GLES 1.0 和 1.1,但不支持 ES 2.0(在 Android 上)?

因此,在我看来,EGL应该是一个平台中立的并行接口,但是它并不完全支持 GLES 2.0(在安卓上);因此,如果您正在编写 GLES 2.0 代码(在 Android 上),最好只使用 GLxxx API 而不是 EGLxxx API(并且无论如何都必须求助于 GLxxx API)。据我所知,您不需要 >HAVE

(每个示例/书籍/参考都将两者混合,使用本机界面或仅使用 EGL 1.1 功能;我在这里遗漏了一些基本的东西吗?)

【问题讨论】:

    标签: android opengl-es-2.0


    【解决方案1】:

    EGL 是 OpenGL ES 的补充。 EGL 用于使用 eglCreateWindowSurface 等函数获取要渲染的表面,然后您可以使用 OpenGL ES 绘制到该表面。其作用类似于GLX/WGL/CGL。

    EGL 是否可以为您提供支持 OpenGL ES 2.0 的上下文可能因平台而异,但如果 Android 设备支持 ES 2.0 和 EGL,您应该能够从 EGL 获得这样的上下文。在请求 EGLConfig 时查看 EGL_RENDERABLE_TYPE 属性和 EGL_OPENGL_ES2_BIT。

    http://www.khronos.org/files/egl-1-4-quick-reference-card.pdf

    【讨论】:

    • 感谢您的回答和链接,我有 ES 参考。卡,但不是 EGL。我已经发布了一个更具体的后续问题here
    • @Vanderdeckken 如果它正确回答了你的问题,请务必投票(甚至接受)这个答案。
    猜你喜欢
    • 2015-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多