自学内容网 自学内容网

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)!