Aiglx学习总结

                                                                Aiglx 学习总结

Aiglx Accelerated Indirect GLX的缩写,它的主要功能是为了使基于X的客户应用程序能通过glx(X的一个扩展)完成3D的硬件加速。在一个窗口系统中,有两种方法可以让OpenGL的接口函数访问显卡设备:第一种(也是Aiglx所使用的方法)是通过glx协议把gl的命令传送给X Server,然后X Server会把该命令发送给显卡设备,让其完成相应的显示动作;第二种是让OpenGL函数接口直接给显卡设备发送命令。

由于aiglx使用的是间接访问的方式,因此我们下面就来说一下在aiglx架构下3D应用程序的流程。在说此之前不得不先介绍一下X Window MesaGLX

X Window linux下最流行的窗口系统,它采用客户/服务器模式。所有的资源(屏幕、字体、windowgc等)都由服务器来管理,客户端唯一所能做的就是请求服务器做某些操作,如画一条直线,创建窗口等。对X客户/服务器模式的理解,可能大家都会有些迷惑,需要指出的是X的客户/服务器模式与网页的客户服务器模式有所不同,一般网页的显示会通过网页服务器(如apache)的解析,然后把内容发给客户机显示,然而,X的显示是在服务器机上进行的,为了更好的理解X的客户/服务器模式我们举个例子:

找两台装有linux的并且网络相联的机子,把其中一台当服务器,另一台当客户机,在服务器上启动X server(通过在终端输入X xinit startx), 然后运行xhost +客户机的ip地址, 然后再在客户机上运行export DISPLAY=服务器ip:0.0,最后在客户机上随便运行一个基于X的程序,你会发现它能在X server上显示出来。

X Window 主要分为3部分:客户端、协议和服务器。所有基于X的程序都可以看成是一个客户端,该程序可以看成是命令集,这些命令通过协议发送到服务器,服务器根据协议定义的格式解析这些命令,然后按照命令去执行相应的操作。

由于X Core已经远远不能满足需求,所以需要通过扩展来完成一些特殊的功能,如GLX就是X Window的一个扩展,它的主要功能是将OpenGLX Window有效的结合在一起,OpenGL 的接口函数可以通过GLX协议发送到X ServerX Server再解析执行。

Mesa OpenGL标准的一种实现,OpenGL标准接口的实现是相当复杂的,我们就不去讨论具体函数的实现了。但是我们应该知道,Mesa用软件实现了OpenGL标准接口,并且还可以使用硬件加速实现OpenGL标准接口(通过调用3D驱动实现,按我的理解,3D驱动是DRI的一部分)。 GLXServer会调用Mesa 来满足Client的请求。

GLXX WindowOpenGL的扩展,它的主要功能是为X窗口系统实现3D效果,当然,3D效果的真正实现并不是由GLX来实现的,而是由MESA实现的,GLX就是为X WindowMESA起到了桥梁的作用。

总上所述,Aiglx就是一种X窗口系统上实现3D特效的架构,它采用扩展的方式使用最小的改动来实现具有硬件加速的3D效果,它的结构图如下:

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值