Xgl

维基百科,自由的百科全书
跳转至: 导航搜索
Xgl制造的3D效果截图

Xgl 是一個X server,他藉由OpenGL技術充分發揮了新一代顯示卡優異的3D立體畫面表現能力;從「架構」的角度來看,XGL透過了glitz位在OpenGL的上層。XGL利用了聚合視窗管理器的幫助(像是CompizBeryl)對所有使用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[编辑]

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獨特架構的本體上面。

Xegl[编辑]

Xegl被认为[谁?]是Xgl的未来,X Server开发过程的长期日标。[9] 它和Xglx Server分享部分绘画代码,但是OpenGL可绘画的初始化和上下文管理则是由EGL API管理,EGL由Khronos开发(EGL是窗口系统无关的,相当于GLX和WGL,GLX用于在X Window系统上支持OpenGL,WGL用于微软Windows)。当前的实现是使用Mesa 3D提供直接的OpenGL渲染到帧缓存或通过DRI到图形硬件。2007年7月时Xegl只能运行在使用ATi Radeon R200显卡的系统上,当前开发已经暂停了。[10] 它将会被保留直到Xglx Server证明自己可行,并且闭源的驱动支持EGL API,这时它才是一个显而易见的Xglx Server的替代品。

Xegl貌似已经失败。

竞争者[编辑]

對於另一競爭者微軟公司而言,他們也在自家的Windows作業系統上提供了相似功能的解決方案:視窗桌面管理器DWM。有別於Xgl所採用的OpenGL技術,這套採用微軟自家DirectX技術的DWM已经在新一代的視窗作業系統Windows Vista中問世。

争议[编辑]

Xgl在技术上为了要较好的实现OpenGL性能,需要用到目前一些3D显卡的特性。但目前对于ATI和NVIDIA显卡最新型号,只能以二进之代码包的形式得到这些内核模块(无法得到源代码)。目前这种情况变成了一个僵局,因为显卡制造商已经声明不会支持完全开放源代码,他们认为这会暴露他们硬件上的商业秘密。不过Intel公司从Intel965芯片组开始,公布其驱动程序的源代码[11]。这将是Linux硬件视频驱动发展上的一个里程碑。之后ATI也不断发布了新老版本显卡的技术文档,把较老版本显卡驱动的维护间接转移给开源社区。

可得性[编辑]

2006年5月,Xgl含其附屬元件(像是聚合視窗管理員 Compiz 和組態設定工具等等)成為了SUSE 10 這個Linux發行版中的非預設安裝項目,也以套件的形式成為Frugalware LinuxSUSE 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立體桌面的全部設定。

延伸閱讀[编辑]

參考資料[编辑]

  1. ^ http://lists.freedesktop.org/archives/xorg/2006-February/013306.html
  2. ^ http://lists.freedesktop.org/archives/xorg/2006-January/011922.html
  3. ^ http://lwn.net/Articles/166081/
  4. ^ http://linux.slashdot.org/linux/06/02/08/0624253.shtml
  5. ^ http://xgl.opensuse.org/
  6. ^ http://www.opensuse.org/Xgl
  7. ^ http://cvs.freedesktop.org/xapps/compiz/
  8. ^ http://download.nvidia.com/developer/presentations/2006/xdevconf/compositing-with-current-framework.pdf
  9. ^ http://jonsmirl.googlepages.com/graphics.html
  10. ^ http://gitweb.freedesktop.org/?p=xorg/xserver.git;a=history;h=master;hb=master;f=hw/xgl/egl/xegl.c
  11. ^ http://intellinuxgraphics.org/

外部連結[编辑]

安裝和使用說明、論壇、尋求支援[编辑]

免安裝直接開機使用光碟[编辑]

  • Kororaa Linux 這套含有 XGL 功能的 LINUX作業系統可以被直接安置在光碟裡面,您可以使用光碟片開機體驗華麗的 XGL 功能而不會更動到任何的硬碟資訊。然而值得住意的是:由於 ATI 和 NVidia 的驅動程式和 GPL 版權規範有所不相容,所以新版的 Kororaa Linux Live CD 將不支援這兩家公司的顯示卡,直到有符合GPL版權宣告的新版驅動程式出現為止。
  • Mandriva 在其最新版的 Live CD中支援XGL功能。
  • Sabayon Linux 是一個支援 XGL 和 AIGLX 的 Live CD。 然而和 Kororaa Linux 不同的是它支援了 ATI 和 NVidia 的顯示卡。另外它也可以被安裝在硬碟上面。

桌面貼圖、快照、screencast及範例影片[编辑]