0

正如在这个线程上看到的那样,能够在 Linux 上本地运行 DirectX 的缺失部分似乎是供应商驱动程序。

供应商驱动程序到底是什么?它们是连接特定模型的组件、系列还是其中任何一个的驱动程序?它们是用什么编码的?ASM 和 C 最有可能?

某人(或团队)将如何为 Linux 创建这些驱动程序?它将如何集成到 Linux 中?通常为 Windows 制作并使用 DirectX 的游戏或应用程序是否需要针对 Linux 进行任何调整?制作游戏的公司是否会为 Linux 构建他们的游戏,知道它们可以在不需要或只需要一些调整的情况下使用吗?

制造这些驱动程序有多难?需要多长时间?它需要任何特定的知识吗?

我知道这会产生很多问题,但我对此非常好奇,为什么没有大型团体认真研究过这个问题(即使必须有充分的理由)。

非常感谢您的回答!

编辑:这绝不是引发争论,例如,OpenGL 与 DirectX,或 Windows 与 Linux。通过阅读常见问题解答,我真的不明白为什么这个线程没有建设性,因为它要求的问题非常有针对性,应该可以快速回答。

4

1 回答 1

0

恕我直言,没有人真正费心处理 DirectX 的主要原因是基于这样一个事实,即已经有一个可用的图形库(Linux 的特殊情况下的台面)完全支持 DirectX 也可用的任何所需的图形操作。

与 DirectX 相比,DirectX 是一个基于所谓的知识产权归一个公司所有的规范,这个库使用的称为 openGL 的 API 是一个由硬件制造商联盟商定的开放标准。

与将它的使用限制在一个操作系统上的理念不同,它可能试图将其用户束缚在一个唯一的平台上,openGL 从一开始就旨在作为一个独立于平台的 API。

遵循这一原则,与 DirectX 仅在一个平台上可用相反, openGL 可在任何计算平台上使用,范围从基于 android 的系统、Mac 和许多其他 UNIXoid 系统(包括 Linux 甚至 Windows 机器)。

使用除 openGL 之外的任何其他 API 都会破坏这种平台独立性,这可能不会被视为一种进步,而是一种回归。

总而言之,支持 openGL 而不是 DirectX 的主要原因可能如下:

  • openGL 是一个开放标准,而 DirectX 是专有的

  • openGL 适用于任何平台 DirectX 仅适用于单一平台

  • OpenGL 也支持 DirectX 支持的任何操作

  • 如果真的需要 DirectX 调用,可以由包装库提供,将操作向下推到 openGL,例如在 WINE 中完成

仅 DirectX 库实现的可用性根本无法使为 Windows 平台设计的任何二进制代码运行,因为整套系统库和基础设施仍然根本不可用。事实上,即使是在 Linux 上的 Windows ELF 上使用 PE/COFF 的二进制格式也是不同的。

提供包括所需系统库在内的整个兼容性层的努力已经在进行中。正如上面已经提到的,它的名称是 WINE。(见: http: //www.winehq.org/

我希望我给了你一些很好的理由,说明为什么没有人按照你的要求尝试(或将尝试)。

于 2013-03-24T21:48:44.420 回答