首页 > 解决方案 > 了解 EGLSurface、EGL、Surface 和 SurfaceView 如何相互关联

问题描述

我正在学习如何使用 OpenGL ES。我不确定我是否清楚地理解了从绘制到显示它的架构是如何完成的。特别是我想使用:

有一个名为 GLSurfaceView 的组件将所有这些组件联系在一起。但我更喜欢独立地使用它们中的每一个,以便更好地理解这些部分是如何工作的。

如果我对它的工作原理有误,请纠正我:

EGLSurface 是由 EGL 创建的组件。您使用 OpenGL ES (GLES) 在 EGLSurface 上绘图。为了让 EGL 创建一个 EGLSurface,您必须为它提供一个 Surface。SurfaceView 提供了 Surface,但它也提供了最终用于显示在 EGLSurface 上绘制的内容的视图。您使用 EGL 并调用 eglCreateWindowSurface 函数并将来自 SurfaceView 的 Surface 传递给它。EGL 然后创建一个 EGLSurface 并将它绑定到它提供的 Surface 上。从那时起,当您在 EGLSurface 上绘制然后调用 eglSwapBuffers 时,所绘制的帧将被发送到 Surface,而 Surface 又将其发送到显示它的 SurfaceView。

标签: androidopengl-essurfaceviewegl

解决方案


推荐阅读