output对应画面; 视图对应窗口,多个视图属于层; plane与底层的plane相对应。
1 .创建日志流
2 .创建2.wl_display_create () wl_display对象
3 .获取3.wl_display_get_event_loop () server端的wl_event_loop,然后通过wl_event_loop_add_signal函数返回刚才的wl
4 .初始化wl _ list _ init (child _ process _ list )子线程的双向链表
读取weston.ini配置文件,然后逐一读取和写入配置文件中的选项。
6.weston_compositor_create创建compositor
7.load_backend进行后端初始化根据所传递的参数/来配置后台。 [当前正在使用的load _ DRM _ back end ] Weston _ compositor _ load _ back end; 最终调用backend_init的函数指针-weston_load_module,[dlopen/dlsym]函数在compositor.c中实现; 对应的,在compostior-xx.c上Weston _ back end _ init/DRM _ back end _ create/full _ init _ main/init _ DRM; 打开/dev/dri/card0节点
33558 www.Sina.com//run/user/0/wayland-0 [客户端和服务器通过此套接字进行交互]
8.weston_create_listening_socket创建监听socket
根据传递的“壳”参数或环境变量选择壳界面。 默认值为桌面- shell.so; 调用wet_load_shell; 最终调用shell _ init的函数指针-wet_load_module_entrypoint,[dlopen/dlsym]函数在main.c中实现
桌面-唤醒shell和桌面客户端
10.load_modules加载其他模块、键盘等
11.weston_compositor_wake唤醒compositor
9.wet_load_shell加载shell
调用wl_display_run (),进入主循环,[1为buffer,2为event]; wl_display_flush_clients[通过套接字将当前out buffer中的数据发送到客户端。 这些数据以前写入wl_connection_write(] (),不再需要客户端后,必须销毁客户端
支持weston的后端
用户界面代表,窗口管理: shell back end:desktop-shell.so/IVI-shell.so
合成渲染: render backend:gl-renderer.so
合成内容输出: compositor back end:DRM-back end.so
input管理: libinput.so
【欢迎来到米勒实验室】