Android SurfaceFlinger——关联EGL三要素(二十七)
通过前面的文章我们得到了 EGL 的三要素——Display、Surface 和 Context。其中,Display 是一个图形显示系统或者硬件屏幕,Surface 代表一个可以被渲染的图像缓冲区,Context 包含了 OpenGL ES 的状态信息和资源,它是执行 OpenGL 命令的环境。下一步就是调用 eglMakeCurrent() 将三者进行关联。
一、关联三要素
1、eglApi.cpp
源码位置:/frameworks/native/opengl/libs/EGL/eglApi.cpp
EGLBoolean eglMakeCurrent(EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx) {
clearError();
egl_connection_t* const cnx = &gEGLImpl;
return cnx->platform.eglMakeCurrent(dpy, draw, read, ctx);
}
这里同样是调用 eglApi.cpp 中的 eglMakeCurrent() 函数,同时也是调用到 egl_platform_entries.cpp 中的对应函数。
2、egl_platform_entries.cpp
源码位置:frameworks/native/opengl/libs/EGL/egl_platform_entries.cpp
extern void setGLHooksThreadSpecific(gl_hooks_t const* value);
static const implementation_map_t sPlatformImplMap[] = {
{
原文地址:https://blog.csdn.net/c19344881x/article/details/140131953
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!