spice server主表面(primary surface)创建过程
来源:互联网 发布:网络上弧是什么意思 编辑:程序博客网 时间:2024/03/29 17:18
qemu中接收qxl显卡指令的是ioport_write(hw\qxl.c),这个函数作为qxl_io_ops(MemoryRegionOps结构的一个实例)中write函数指针的实现,在qxl_init_common()中进行初始化。
qxl指令分为异步和同步。当收到QXL_IO_CREATE_PRIMARY指令时调用qxl_create_guest_primary()。第一个参数类型PCIQXLDevice,包含了surface信息(包含长宽、位置、格式等)。对于同步模式,在qxl_create_guest_primary()中调用qemu_spice_create_primary_surface(),通过回调调用qxl_worker_create_primary_surface(spice\server\red_dispatcher.c)。
qxl_worker_create_primary_surfacr()中调用red_dispatcher_create_primary_surface(),在其中如果异步调用red_dispatcher_create_primary_surface_async(),同步调用red_dispatcher_create_primary_surface_sync()。同步会向red worker发送一个RED_WORKER_MESSAGE_CREATE_PRIMARY_SURFACE消息。下面都以同步进行说明。
在red_worker.c中register_callbacks()函数注册了一系列的消息函数。RED_WORKER_MESSAGE_CREATE_PRIMARY_SURFACE消息的回调是handle_dev_create_primary_surface()。当red worker收到该消息时就会调用这个函数。handle_dev_create_primary_surface()进而调用dev_create_primary_surface()。在dev_create_primary_surface()中首先调用red_create_surface()创建red worker的surface,完成surface的初始化、创建工作。然后调用set_monitors_config_to_primary()初始化monitor配置。其次检测是否有客户端的显示和光标通道连上了,如果有连上的显示或光标通道,则分别进行相应的初始化。
- spice server主表面(primary surface)创建过程
- Spice代码阅读二:Primary surface 创建过程
- Spice代码阅读二:Primary surface 创建过程
- Chromium网页绘图表面(Output Surface)创建过程分析
- Chromium网页绘图表面(Output Surface)创建过程分析
- 创建一个关联有"后备缓冲"的"主表面"(即复杂表面,Complex Surface)
- Android应用程序窗口(Activity)的绘图表面(Surface)的创建过程分析
- Android应用程序窗口(Activity)的绘图表面(Surface)的创建过程分析
- Android应用程序窗口(Activity)的绘图表面(Surface)的创建过程分析
- Spice代码阅读一:Spice Client 与 Spice Server 通道建立过程
- Spice代码阅读一:Spice Client 与 Spice Server 通道建立过程
- Android应用程序创建Surface过程源码分析
- java层的surface创建过程
- spice server 显示中的item创建及处理
- 表面着色器Surface Shader2
- spice server ring 机制
- spice server timer机制
- spice server watch机制
- 单机TCP最大连接数简析
- Windows系统下nodejs安装及配置
- Google工程师多图详解Android系统架构
- MyEclipse svn必备技能之常用菜单
- 一道面试题的思考
- spice server主表面(primary surface)创建过程
- 如何解压cpio.gz文件?
- Oracle Database 软件及补丁下载地址
- java操作json
- oracle 9i/10g/11g安装包和PATCH下载地址汇总
- 创业团队在哪里可以找到靠谱的 iOS 开发工程师?
- java中使用Servlet实现文件上传
- 为MyEclipse 9中的html/JSP编辑器添加代码自动提示
- 小Q书桌图标实现分析一