在 Fedora Core 5 上体验 Aiglx 和 Xgl & Compiz
在Fedora Core 5上体验 Aiglx 和 Xgl & Compiz作者:aaccdd
来自:LinuxSir.org
摘要:
Aiglx是一个旨在为标准桌面启用GL加速功能的项目,目的在于通过小幅度修改X server、使用添加新协议支持的Mesa升级版和带有混合管理器版本的metacity,让用户稍作改动即可在桌面上使用GL效果,随意开启、关闭该功能而无需替代使用中的X server。
Xgl是基于OpenGL上的X服务架构,现在处于开发阶段,很多重要的部分还未完成。Xglx是目前唯一使用这种结构的X服务器,它需要在一个已有的X服务器,只用于测试和开发目的。Xegl是基于Xgl架构的新一代X服务器,它将使用EGL扩展独立地运行在OpenGL上
本文简要介绍了Aiglx和Xgl的特点和功能,以及在Fedora Core 5上从源码编译、安装、配置Aiglx和Xgl的一种方法。希望为对此有兴趣的FC5用户提供一种尝试的途径。
一 写在前面:
⒈什么是Xgl?
http://www.freedesktop.org/wiki/Software_2fXgl
Xgl是基于OpenGL上的X服务架构,现在处于开发阶段,很多重要的部分还未完成。Xglx是目前唯一使用这种结构的X服务器,它需要在一个已有的X服务器,只用于测试和开发目的。Xegl是基于Xgl架构的新一代X服务器,它将使用EGL扩展独立地运行在OpenGL上。
它有哪些新的特性呢?
基于OpenGL的X层,使用混合桌面,开启通往新功能、新机会的大门。以下是一些可能出现的功能,其中一些现在已经实现。我们要破除基于OpenGL的X中看不中用的迷信。
①加倍窗口显示分辨率,应用程序可以用特定的分辨率渲染窗口,而与桌面的分辨率不同。想像一下梯度背景,这样的一个窗口或材质只有几个色素,却以1600x1200或更大的尺寸显示。
②快速、简单的屏幕旋转、翻转、摇动、放大。
③高级字体渲染,包括使用材质和分段程序的及时轮廓字体渲染。
④模拟硬件层面,历史悠久的工作站图形功能可以用材质混合实现
⑤全屏颜色处理,包括伽玛纠正、对比增强、模糊、加亮等等。
⑥同一屏幕上混合像素深度,经重定向,上层窗口可以具有不同的色深(8、16、24、32bpp)。例如:XTerms可以8bpp(只需32bpp图像所用texmem的1/4)创建,用颜色查找表显示(texel 查找分段程序);
⑦每窗口任意色图(texel查找分段程序);
⑧替代窗口色彩空间,“视频”窗口可以存储为YCbCr(比RGB小),使用材质硬件显示时实时转化为RGB;
⑨窗口图像压缩,使用S3TC材质压缩,将内容很少改动的窗口压缩,存储于根窗口的桌面背景就是一个最好的应用。此项技术有可能节省大量内存;
⑩使用OpenGL多实例表面为反锯齿X渲染提供新应用。
⒉什么是Compiz?
Compiz带来多种视觉效果,使得Linux桌面变得更方便、功能更强大、更新颖、更容易满足用户的特殊需求。Compiz使用OpenGL进行渲染,集窗口管理器与混合管理器于一身;窗口管理器处理屏幕上的应用程序和对话框,而混合管理器则使窗口和图形混合,产生混合图像;Compiz同时具有两者的功能,产生惊人的效果。
Compiz目前只能与Xgl“共事”,Compiz的插件及窗口装饰器在Gnome和KDE下都能工作。
⒊什么是aiglx?
http://fedoraproject.org/wiki/RenderingProject/aiglx?highlight=%28aiglx%29
Aiglx(Accelerated Indirect GL X)是一个旨在为标准桌面启用GL加速功能的项目,目的在于通过小幅度修改X server、使用添加新协议支持的Mesa升级版和带有混合管理器版本的metacity,让用户稍作改动即可在桌面上使用GL效果,随意开启、关闭该功能而无需替代使用中的X server。
代码是与X 社区相关的上游完成,Fedora Core 5是第一个包括了模块X包和在适合位置添加适合协议的发布版。Aiglx在X基础方面已经进行了大量工作,但对实际的渲染效果并没下太大力气,希望广大社区帮助创造有趣、适当的效果。重要的不是此时就推出成品,而是鼓励社区围绕其进行开发和实验。
二 体验 Aiglx
参考 http://fedoraproject.org/wiki/RenderingProject/aiglx
⒈下载、安装
①建立CVS目录
mkdir /opt/CVS/
cd /opt/CVS/
②下载安装最新的 GL protocol 头文件
cvs -d:pserver:anoncvs@cvs.freedesktop.org:/cvs/xorg login
CVS password:<回车>
cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xorg co proto/GL
cd /opt/CVS/proto/GL
./autogen.sh
make
make install
③下载安装最新的 Xorg 服务器源码
cvs -d:pserver:anoncvs@cvs.freedesktop:/cvs/xorg co xserver/xorg
cd /opt/CVS/xserver/xorg
./autogen.sh --with-mesa-source=/opt/CVS/Mesa --sysconfdir=/etc
make
make install
ln -s /etc/X11/fs /usr/local/lib/X11/fs
④下载安装 Mesa 源码
cvs -d:pserver:anoncvs@cvs.freedesktop:/cvs/mesa co Mesa
cd /opt/CVS/Mesa
make linux-dri-x86
make install DESTDIR=/usr/local
⑤下载安装 libcom
cvs -d:pserver:anoncvs@anoncvs.gnome.org:/cvs/gnome login
CVS password: <回车>
cvs -d:pserver:anoncvs@anoncvs.gnome.org:/cvs/gnome co libcm
cd /opt/CVS/libcm
./autogen.sh
make
make install
⑥下载安装 metacity
cvs -d:pserver:anoncvs@anoncvs.gnome.org:/cvs/gnome co metacity
cd /opt/CVS/metacity
./autogen.sh --enable-compositor
make
make install
⒉配置
①启用混合管理器
gconftool-2 -s '/apps/metacity/general/compositing_manager' --type bool true
或使用配置管理器设置/apps/metacity/general/compositing_manager键值
②修改/etc/X11/xorg.conf,添加
Section "extensions"
Option "Composite"
EndSection
Section "Device"
...
Option "XAANoOffscreenPixmaps"
EndSection
③禁用混合管理器,运行命令
gconftool-2 -s '/apps/metacity/general/compositing_manager' --type bool false
或使用配置管理器修改/apps/metacity/general/compositing_manager键值
④使用鼠标右键来启用、禁用服务
编辑文件:
gedit ~/.gnome2/nautilus-scripts/aiglx
添加内容:
#!/bin/bash
title="Aiglx Service"
#Date: 3-19-2006
# Wriiten By: fedorajim@gmail.com
zenity --question --text "Do you want to turn On or Off the AIGLX Service? Yes=On / Cancel=Off" --title="$title"
if [ "$(echo $?)" == "1" ] #They clicked "no"
then # Turn off the AIGLX Service
gconftool-2 -s '/apps/metacity/general/compositing_manager' --type bool false
else
# turn on the AIGLX Service
gconftool-2 -s '/apps/metacity/general/compositing_manager' --type bool true
fi
保存文件,使其可执行
chmod u+x ~/.gnome2/nautilus-scripts/aiglx
⒊ 演示和已知问题
①演示
最小化之一 http://www.gnome.org/~jrb/aiglx/shot01.ogg
最小化之二 http://www.gnome.org/~jrb/aiglx/shot02.ogg
菜单淡化 http://www.gnome.org/~jrb/aiglx/shot03.ogg
②支持的显卡和一些问题
http://fedoraproject.org/wiki/RenderingProject/aiglx#head-43a98eb9adc0264c802bf5918f1cc57bddbbc129
三 体验 Xgl & Compiz
本文的重点是在不破坏原有系统的基础上,使普通用户