X Window研究笔记(2)
转载时请注明出处和作者联系方式
作者联系方式:李先静 <xianjimli at hotmail dot com>
2.X Window的功能
X Window提供了一组非常底层的服务,客户端程序发送请求给X Window, X Window根据请求完成相应服务。通过这些服务,客户端程序可以构建期望的用户界面。根据不同的功能,可以把这些服务分为以下几大类:
2.1.处理输入
X Window从键盘和鼠标接受输入,这些输入数据被当作”事件”传送给适当的客户端程序。至于哪个窗口应该接受到这些事件,是依赖于窗口管理器的(窗口管理器实际上也是一个客户端),典型的事件包括按键,鼠标移动,鼠标按下/放开等。
输入设备往往是与硬件平台相关的,而且又是独占资源,所以用X Window管理是理所当然的。应用程序通常不需要关心具体的设备,只要处理相应的事件就行了,像mouse和笔点可能发出同样的事件,而应用程序不用区分它们。输入事件也可以通过XTest扩展,由软件模拟出来的(通常用来实现软件键盘)。
2.2.按层次形组织窗口
X Window提供服务让客户端程序创建/销毁窗口,所谓的窗口就是屏幕上的矩形区域,它是可以层层嵌套的,有很多操作可以作用于窗口(如,查询或改变窗口的大小和位置等),X Window的主要功能之一就是负责管理这种按层次形组织的窗口。
不过X Window管理这些窗口是被动进行的,由窗口管理器根据用户的行为决定。它请求X Window做相应的动作,比如移动窗口,调整窗口的大小,改变窗口的前后关系等等。第一次接触X Window时,得知窗口管理器是一个普通的客户端时,我觉得惊讶,这种设计真是太先进了,其实它正是遵循了提供机制而不是策略这一原则。
现在已经有很多窗口管理器的实现可用,它们提供不同的风格和功能,有的用于PC,有的用于嵌入式系统,像matchbox就是在嵌入式上比较流行的,像Nokia的N770/N800就是用的matchbox。
2.3.提供图形操作
X Window提供了一些基本的画图操作,如画直线、矩形、圆弧和多边形等。 这些图形的颜色、线宽、填充类型都可以由客户端程序指定。X Window同时提供了许多位图操作,这些位图操作可以作用于了窗口的各个区域。
X Winwod还会充分挖掘硬件的加速特性,像填充、画直线和图像叠加等操作,如果硬件支持相应的加速功能,就可以通过硬件实现,否则就用软件实现。
2.4.提供文本和字体操作
X Window提供了字体相关的操作。客户端程序可以请求X window在指定的区域用指定的字体显示指定的字符串,当然在此之前应该请求X window加载字体,加载后客户端程序可以得到关于字体的一些信息。
实际上,这一功能由于客户端字体绘制的流行,而大大弱化了,现在的字体差不多都是在客户端绘制好后,再通过X Render扩展显示到X Window去的。在fontconfig/freetype/pango/cairo的帮助,在客户端绘制字体更容易使用。
(待续)
分享到:
相关推荐
X Window研究笔记 虽然X Window是一个非常复杂的系统,但只要静下心来分析,通常遇到的问题也是很容易解决的,前年我花了一段时间去研究X Window的实现,我发现了解它的实现后,很多问题都迎刃而解了
X-window简略笔记
X Window 程式设计入门--第一章 什么是 X Window X Window 程式设计入门--第二章 X Programming 的第一步 X Window 程式设计入门--第三章 绘图(Graphic) X Window 程式设计入门--第三章 绘图(Graphic) X Window 程...
Xwindow程序设计入门,网上收藏,很好的资料,对了解xwindow编程很有帮助
X Window System 是一套在各种位元映像显示器 (bitmapped dispalys) 上具有极大可携性 (portable) 的视窗系统 (window system), 它是由麻省理工学院 (MIT)所发展出来. X Windows System ( 本书以後部 份简称为...
This practical guide shows X programmers how to construct working 3D applications using OpenGL and how to tightly integrate OpenGL applications with the X Window System. Written by a Silicon Graphics...
描述X window 直接渲染架构的概念,实现
对Linux操作系统的桌面环境软件X window的介绍及启动流程
X Window System 是一套在各种位元映像显示器 (bitmapped dispalys) 上具有极大可携性 (portable) 的视窗系统 (window system), 它是由麻省理工学院 (MIT)所发展出来. X Windows System ( 本书以後部 份简称为...
Linux与X Window系统基础 Linux与X Window系统基础
Linux下X-Window系统程序设计简介.pdf
这个文档为Linux用户提供了一些基本的关于理解和配置X-Window系统的信息。 这只是一个入门级别的文档。假设已经有了一个安装好的并且正在工作的 X-Window系统。
window manager for x window manager for x window manager for x
关于X window的介绍。让你了解并熟悉X window。
Xwindow 是一个非常出色的图形系统,你应该抱怨的是那些不稳定的包装,而不是 Xwindow 本身。
Xming, windows操作系统连接Linux, Unix的x window 工具。
Window批处理命令学习笔记,批处理实用简小工具
一份课程报告,介绍了X-Window的架构体系,并对启动代码做了分析