XWinfow简介

1. Wayland : 轻量级的xwindow
只是一个协议(Protocol),就像X Window当前的协议——X11一样,它只定义了如何与内核通讯、如何与Client通讯,
具体的策略,依然是交给开发者自己。所以Wayland依然 是贯彻“提供机制,而非策略”的Unix程序。

2. Xserver
main 函数入口: xorg-server/dix/main.c
Server为用户代表不同的用户应用来管理窗口和简单的图形的请求。客户应用程序可以运行在网络上的任何一台机器中。Server主要作三件事情:
对已经存在的客户的协议请求作出响应(大部分是图形和文本的绘制命令);
发送设备的输入(键盘和鼠标)和其他的事件给客户;
保持客户连接;
(1) Server代码主要是四个主要部分组成:
硬件无关层(DIX)----所有工具共享的代码;
操作系统层(OS)----这部分的代码针对不同的每个操作系统,但是对于同一操作系统而言这部分代码在所有图形设备中是共享的。
硬件相关层(DDX)----这部分代码根据操作系统和图形设备的不同而不同;
扩展接口----向XServer增加功能的标准途径;
(2) X resourses
X资源是一些Server中的一些C数据结构。客户应用程序通过X字节流协议规则来创建和操作这些结构。客户程序通过ID来查询这些资源,ID就是一个
32位的INT值,在网络上进行传输。在Server内部,当然,他们只是一些C结构,我们通过指针来引用他们。
DDX有几种资源:
Window;
Pixmap;
Screen;
Device;
Colormap;
Font;
Cursor;
Graphics Context;
比较重要的Server结构的类型名一般以“Rec”结尾,比如“DeviceRec”,指针类型一般以“Ptr”结尾,比如“DevicePtr”。
结构体和一些重要的常量一般定义在.h文件中。比如说,有两个文件:window.h windowstr.h,window.h只定义了那些需要用到window而不需要引用
到其内部的一些变量;windowstr.h详细定义了其结构体成员。
(3) 缩略语清单:
BDF Bitmap Distribution Format
DBE Double Buffer Extension
DIX Device Independent
DDX Device Dependent
ICCCM The Inter-Client Communication Conventions Manual
DMX distributed multihead X system
DMPS Display Power Management Signaling
DPS Display Postscript
DRI Direct Rendering Interface
EVI Extended Visual Information
FS Font Service
ICE Inter-Client Exchange
RX remote execute
CUP Colormap Utilization Policy and Extension
DMCP Display Manager Control Protocol
XIM X Input Method Protocol
XI X11 Input Extension Protocol
XSMP X Session Management Protocol
XP X Print Service
XPM X PixMap Format
XTrans X Transport Interface
GC Graphic context
MID Mobile Internet Device
XCB X protocol C-language Binding
AXI Advanced eXtensible Interface

Overlap函数调用:
miMarkOverlappedWindows
RegionContainsRect
pixman_region_contains_rectangle
xf86InitFBManagerRegion

3. Pixman
Important users of pixman are the cairo graphics library and the X server.
pixman_image_fill_boxes              
pixman_image_fill_rectangle
pixman_image_composite 支持混合2块buffer,操作类型如PIXMAN_OP_OVER, PIXMAN_OP_OVERLAY
pixman_region32_t 这个东西应该是有两个用途: 1. clip region;2. 判断 object的boundbox
 
4. SPRD的xvideo 
SPRDVideoImagePutImage
SPRDDRI2ScheduleSwapWithRegion

5. libxrender
XRenderComposite
 
6. libxext
支持 multibuffer

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值