Android GPU系列 2 - eglGetDisplay

libGLESv1_CM.so 是OpenGL ES 1.0 库的一个共享对象文件。在这个文件名中,CM 代表 "Common Profile",这是 OpenGL ES 1.0规范中的一个配置文件。

OpenGL ES 1.0 和 1.1规范定义了两个配置文件:

Common Profile (CM): 这是大多数嵌入式系统使用的标准配置文件,提供了一组基本的图形功能。

Common Lite Profile (CL): 这是一个轻量级的配置文件,提供了更少的功能,适用于资源非常有限的设备。

驱动库中被标识为EGLAPIENTRY的eglGetDisplay代理有两个,一个glcm是gles的1.0实现,一个是2.0的入口,不过它们的实现都是加载libmali中的eglGetDisplay。该条path仅在生成libmali的时候生效。

可以直接看eglGetDisplay的实现。

egl_winsys_interface *winsys =egl_winsys_get_implementation();

获取一个全局的winsys接口。


eglGetDisplay流程

先获取当前线程的私有数据,如果没有的话就创建一个,并调用egl_feature_init初始化egl的feture list,注册获取不同类型feture extension的callback到global_feature_list中,完成私有数据的初始化后,将私有数据设置给当前线程。

再创建一个eglp_display结构体,初始化关键变量,最后加入global_display_list中。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容