在2010年,曾经有个d3d1x for linux的项目短暂地轰动过。它通过Gallium的state tracker,原生地支持了d3d10和11的API,能运行一些简单的demo。遗憾的是,由于Wine的人对d3d1x不是很感兴趣(d3d9还支持不过来呢),在2013年3月份,d3d1x for linux因为无法使用和无人维护,被从mesa的repository里删除了。
(题外话:尚在开发中的HLSL bytecode to GLSL编译器也用了d3d1x for linux的bytecode解析代码,里面bug不少,而且都是下标写错之类不执行到肉眼很难看出来的bug。)
与此同时,d3d9 for linux诞生了。和之前一样,它也是个state tracker,也是原生支持。更好的是,它已经可以执行d3d9的游戏,并且性能高于Wine的转换成OpenGL的方 ...
上周五,Linux 3.0核心终于正式发布了!
Linux 3.0带来的新功能主要有
Btrfs数据检查和自动碎片整理
支持XEN Dom0
无需权限的ICMP_ECHO
WLAN唤醒
Berkeley封包过滤器的即时过滤
类似于memcached的页面缓冲系统
新的系统调用sendmmsg(),可以合并多个sendmsg()和setns()
用于更好地处理轻量级虚拟化系统的新系统调用
增加的新硬件主要有
Microsoft Kinect
AMD Llano Fusion APU
Intel iwlwifi 105和135
Intel C600 serial-attached-scsi控制器
Ralink RT5370 USB
多种Realtek RTL81xx设备
Apple iSight摄像头
增加了其他很多驱动和小更新
详细更新可以在这里找到。
看得出来,新的Linux核心 ...
上篇文章讨论了两个API在功能上的交集,以及互操作的方法。本篇作为系列的结局,将讨论一些平台相关的问题。
平台
长久以来,一直可以听到一种说法,D3D只能在Windows上用,而OpenGL可以用在所有平台。那么,我们就来看看在各个平台上,几种3D API的可用性。
桌面平台
Windows
Windows 平台在这方面相当全面,D3D11、D3D10、D3D9、OpenGL、OpenGL ES都支持(需要注意的是,只有Vista+支持D3D10和D3D11)。由于OpenGL 4.1可以建立OpenGL ES的context,NV和AMD的驱动都提供了原生的OpenGL ES。这也为浏览器中WebGL的实现提供了方便。
Mac OS X
Mac OS X所支持的OpenGL比较老旧,也不支持D3D和OpenGL ES。
Linux
Linux的主打API是OpenG ...