Privacy Policy Cookie Policy Terms and Conditions Xgl - Wikipedia

Xgl

维基百科,自由的百科全书

Image:03wiki-zn-frontpage-icon.gifXgl正在翻译。欢迎您积极翻译与修订
目前已翻译73%


Xgl 是一個 X server,他藉由OpenGL 技術充分發揮了新一代顯示卡優異的3D立體畫面表現能力;從「架構」的角度來看,XGL透過了 glitz 位在 OpenGL 的上層。XGL利用了聚合視窗管理器的幫助(像是Compiz 或 Beryl)對所有使用 X、OpenGL 和 XVideo 所製作的應用和圖形效果提供了硬體加速的支援,所以能表現出包含調整視窗透明度、可旋轉的3D桌面、果凍效果等等令人嘆為觀止的立體特效。這個計畫最初由 David Reveman 發起,並在20061月2日的時候第一次釋出(release)。

Xgl制造的3D效果截图
Xgl制造的3D效果截图

目录

[编辑] 历史

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的复合管理器中实现,但几个特效由于缺乏窗口管理器与复合管理器(composite manager)的整合,而无法有效实现。取而代之的是由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] (PDF). 儘管如此,卻不能否認這樣的一個設計方法,是將整個後端 "原型機" "全部實做出來" 的方法中,最快速而簡單的一招。這樣的作法可以讓開發者省略掉開發一些已經存在於前置 X server 上的項目,把精力集中在實做Xgl獨特架構的本體上面。

[编辑] Xegl

Xegl is the future of Xgl and a long term goal of X server development. The Xegl server will share much of the drawing code with the Xglx server, except that the initialization of the OpenGL drawable and context management is handled by the Embedded GL specification, refered to as EGL API. The current impelementation uses Mesa-solo to provide OpenGL rendering directly to the Linux framebuffer or DRI to the graphics hardware. As of August 2005 Xegl can only be run using Radeon R200 graphics hardware and development has currently been delayed. It is likely that it will remain so until the Xglx server has proven itself and the close source drivers add support for the EGL API, in which case it should be a transparent replacement for the nested Xglx server.

[编辑] AIGLX

AIGLX stands for Accelerated Indirect GLX. There are two ways that a windowing system can allow an OpenGL implementation to talk to the graphics card. The first is to specify the OpenGL command stream in a portable network-neutral manner using a client/server implementation similar to the X11 drawing routines. This is the indirect route as the drawing commands are sent to the X server and then the xserver sends them along to the graphics card. The second way is to open a window and then allow the OpenGL library to send commands directly to the graphics card. Accelerating the indirect opengl path is orthogonal to how the X server itself is implemented, but it has the side effect of allowing the OpenGL command stream to be more easily captured and redirected to a texture. This allows Compiz and similar 3D window managers to be built on top of a traditional server with a small GLX extension rather than requiring a full Xgl server. Given that AIGLX also accelerates remote viewing and has some other nice applications (like splitting OpenGL streams amongst multiple graphics cards and monitors) it is most likely that AIGLX will be integrated into Xgl. However it could be the case that AIGLX and the extension replace Xglx with the latest NVidia drivers for which they are implemented.

[编辑] 原理

Structuring all rendering on top of OpenGL should simplify modern video driver development and not have the separation of 2D and 3D acceleration. It also removes all driver-dependent code from the Xserver itself, and allows for accelerated Compose and Render operations (needed for transparent windows) independent of the graphics driver. Additionally, compose managers can use the OpenGL API for rendering, allowing for quite amazing effects. It has been reported that affiliates from NVIDIA and ATI are willing to release binary-only drivers for an OpenGL-based X server once a defined API has been established, though on the Xorg Developers Conference 2006 it was indicated by NVIDIA that they are quite happy with the existing driver interface as well. The idea of extending this is being worked on in the AIGLX project by the Fedora Project. [9]

[编辑] 竞争者

Hardware-accelerated OpenGL 2D desktop rendering, limited to using OpenGL for texture composition, has been in use in Mac OS X, in a technology called Quartz Extreme, since Mac OS X v10.2.

Quartz 2D Extreme is an enhancement of this feature and more directly comparable to Xgl. Like Xgl, Quartz 2D Extreme brings OpenGL acceleration to 2D drawing operations and ships with Mac OS X v10.4, but is disabled by default (it may not be production-ready yet).

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

The novelty of these approaches is not the use of hardware acceleration per se (which has been part of X11 nearly since its inception), but the reliance on standard 3D APIs.

[编辑] 争议

Xgl在技术上为了要较好的实现OpenGL性能,需要用到目前一些3D显卡的特性。但目前对于ATI和NVIDIA显卡,只能以二进之代码包的形式得到这些内核模块(无法得到源代码)。虽然有一些这些显卡的开放源代码的驱动程序,但只提供2D和最基本的OpenGL的3D功能。目前这种情况变成了一个僵局,因为显卡制造商已经声明不会支持完全开放源代码,他们认为这会暴露他们硬件上的商业秘密。不过Intel公司最近声明,从Intel965芯片组开始,它将公布其驱动程序的源代码[10]。这将是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立體桌面的全部設定。

[编辑] 延伸閱讀

[编辑] 外部連結

您可以在维基共享资源中查找与此条目相关的多媒体资源:

[编辑] 參考資料

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

[编辑] 免安裝直接開機使用光碟(Live CD)

  • 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 的顯示卡。另外它也可以被安裝在硬碟上面。

[编辑] 桌面貼圖欣賞(screenshot)--以下簡稱快照, screencast, 範例影片

THIS WEB:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2006:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu