|
Xgl 是一个X server,他借由OpenGL技术充分发挥了新一代显示卡优异的3D立体画面表现能力;从「架构」的角度来看,XGL透过了glitz位在OpenGL的上层。XGL利用了聚合视窗管理器的帮助(像是Compiz 或 Beryl)对所有使用X、OpenGL和XVideo所制作的应用和图形效果提供了硬件加速的支援,所以能表现出包含调整视窗透明度、可旋转的3D桌面、果冻效果等等令人叹为观止的立体特效。这个计划最初由David Reveman发起,并在2006年1月2日的时候第一次释出(release)。
目录 |
2005年,XGL的很多工作基于实作的理由[1],先以闭门造车的方式完成。然后在2006年1月2日,开放源码,[2][3],而后针对许多显卡驱动加以改造,归入了freedesktop.org。X服务器的后端可采用Xglx以及Xegl。2006年2月起,Novell桌面小组作了一次eye-candy特效展示,包括透明的窗口、可旋转的3D桌面[4] [5][6],从而使该项目声名远扬。eye-candy特效最初在一个称为glxcompmgr的复合管理器中实现,但几个特效由于缺乏窗口管理器与复合管理器的整合,而无法有效实现。取而代之的是由David Revenman开发的Compiz,这是第一个使用OpenGL来表现的复合窗口管理器(compositing window manager)。[7]
OpenGL并未规范如何去启始显示和处理绘图的细节。取而代之的是规范了一个特殊的中介API去驱动底层作业系统的绘图系统呼叫.到目前为止,有两种不同的后端(backend)途径去解决这些初始化的问题.最有可能的是大多数各个后端将会包含相同的程式码以及不同的差异将会首先在servers初始化部份上.
Xglx是第一个针对这架构的后端实作。它也是目前发展上的焦点核心. 其运作的原理就是在已经存在的X server上用GLX开一个OpenGL视窗,xgl再来使用这个OpenGL视窗,这样的概念类似于Xnest。在未来,这种运作模式将只会提供专业的开发者使用,毕竟它存在着一个看似多余的X server机制。在2006年XDev会议(XDevConf)上面,NVidia这家公司明白的表示这样的发展的方向是一个错误的方向,因为这让XGL的后端竟然只是一个次级的OpenGL视窗(layared server)而不是一个独立的个体(like X server),这将使得许多显示卡的特效受限于最前端的X server而无法呈现。!(像是3D立体的glasses) [8]尽管如此,却不能否认这样的一个设计方法,是将整个后端 "原型机" "全部实做出来" 的方法中,最快速而简单的一招。这样的作法可以让开发者省略掉开发一些已经存在于前置X server上的项目,把精力集中在实做Xgl独特架构的本体上面。
对于另一竞争者微软公司而言,他们也在自家的Windows作业系统上提供了相似功能的解决方案:视窗桌面管理器DWM。有别于Xgl所采用的OpenGL技术,这套采用微软自家DirectX技术的DWM将会在新一代的视窗作业系统Windows Vista中问世。
Xgl在技术上为了要较好的实现OpenGL性能,需要用到目前一些3D显卡的特性。但目前对于ATI和NVIDIA显卡,只能以二进之代码包的形式得到这些内核模块(无法得到源代码)。虽然有一些这些显卡的开放源代码的驱动程序,但只提供2D和最基本的OpenGL的3D功能。目前这种情况变成了一个僵局,因为显卡制造商已经声明不会支持完全开放源代码,他们认为这会暴露他们硬件上的商业秘密。不过Intel公司最近声明,从Intel965芯片组开始,它将公布其驱动程序的源代码[9]。这将是Linux硬件驱动发展上的一个里程碑。
2006年五月,Xgl含其附属元件(像是聚合视窗管理员 Compiz 和组态设定工具等等)成为了SUSE 10 这个Linux发行版中的非默认安装项目,也以套件的形式成为Frugalware Linux和[[SUSE Linux Enterprise Desktop 10的一部份。在Ubuntu 6.06 (Dapper)和 Freespire上,Xgl更可以以最简单的二进制程式码来安装。在Gentoo Linux上面Xgl也可以以 overlayed package的形式取得。Arch Linux的使用者也可以透过PKGBUILD来取得Xgl。
Mandriva Linux 2007内含由官方发行的由Xgl和AIGLX搭配Compiz所组成的package 套件。另外Mandriva也提供了drak3d工具,让使用者能愉快的使用两键式鼠标来搞定3D立体桌面的全部设定。
|
Why are we here?
All text is available under the terms of the GNU Free Documentation License
This page is cache of Wikipedia. History