2013-03-24 43 views
0

this thread可以看出,能夠在Linux上自行運行DirectX的缺失部分是供應商驅動程序。爲Linux創建DirectX廠商驅動程序有多難?

供應商驅動程序究竟是什麼?他們是驅動程序接口的組件,或家庭,甚至其中任何一個特定的模型?他們在什麼編碼? ASM和C最有可能?

人(或團隊)將如何創建這些驅動程序的Linux?它將如何集成到Linux?一般針對Windows和使用DirectX的遊戲或應用程序是否需要對Linux進行任何調整?製作遊戲的公司是否會爲Linux構建遊戲,知道它們可以在沒有或僅需要進行一些調整的情況下使用?

它會很難使這些驅動程序?需要多長時間?它需要任何特定的知識嗎?

我知道這使得很多的問題,但我對此也很好奇,爲什麼沒有大的團體曾經對工作認真(即使必須有一個很好的理由)。

非常感謝您提前瞭解您的答案!

編輯:這絕不是一個煽動的辯論,例如,OpenGL的VS的DirectX或Windows VS Linux操作系統。通過閱讀常見問題解答,我不明白爲什麼這個主題不具有建設性,因爲它要求提供很好的針對性問題,而這些問題應該很快得到解答。

+0

您閱讀了您鏈接錯誤問題的答案。 (我認爲你閱讀了要點,並且沒有仔細閱讀下面的文字,它說「甚至**如果可以提供DirectX庫**,但沒有正確的供應商驅動程序,它將無法工作)供應商驅動程序只有在首先編寫DirectX版本時才能編寫,DirectX是Microsoft的一項技術,而Linux使用其他(非專有的)格式來代替它。 – 2013-03-24 19:17:04

+0

@KenWhite告訴我,如果我錯了,但這不會這並不意味着無法完成Linux DirectX實現,這正是我的主線:完成此實現後,該過程如何完成? – 2013-03-25 16:55:02

回答

0

恕我直言,沒有人真正煩惱處理directX的主要原因是,已經有一個圖形庫(在Linux的特殊情況下是mesa)可用,完全支持任何所需的DirectX圖形操作。

相較於以下的DirectX,這是基於由一個擁有CORPARATION此圖書館稱爲openGL的使用的API所謂知識產權的規範是一個開放的標準由硬件製造商協會商定。

從制約它的理念,不同的使用只是一個操作系統可能試圖爲其用戶束縛,以獨一無二的平臺openGL的目的是作爲從一開始就獨立於平臺的API。

遵循此原則相反的DirectX是可用的只是一個單一的平臺 OpenGL是可在任何計算平臺的範圍從基於Android系統,Mac和許多其他UNIXoid系統包括Linux甚至是Windows機器。

使用openGL的比任何其他API將打破這個平臺的獨立性,這可能不會被接受的進步,而是一種迴歸。

概括起來可能是其主要的原因在DirectX的青睞openGL的有以下幾種:

  • OpenGL是一個開放的標準,而DirectX是專有

  • OpenGL是可用的任何平臺的DirectX是僅適用於單一平臺

  • DirectX支持的任何操作也由openGL支持

  • 如果他們真正需要的DirectX調用可以通過包裝庫頂進作業到OpenGL作爲例如設有葡萄酒做

單獨的DirectX庫實現單純的可用性不會使任何設計的二進制代碼因爲Windows平臺完全可以運行,因爲整套系統庫和基礎架構根本不可用。事實上,甚至在Windows上的ELF上使用PE/COFF的二進制格式也是不同的。

努力提供包括所需系統庫在內的整個兼容層已經開始。如上所述,它以葡萄酒的名字命名。 (見:http://www.winehq.org/

我希望我給你一些爲什麼沒有人試過(或將嘗試),因爲你的要求。

+0

感謝您提供此答案,寫得非常好,內容翔實。但是,您似乎指定Windows的二進制文件本身不能在Linux上使用,這是正確的。但是,如果DirectX是跨平臺的,源代碼是否可以編譯? – 2013-03-25 16:46:46

+0

僅源代碼**僅取決於它會,但已經如此通常在任何程序中都有說明,涉及的很多其他庫不可用,所以很可能它們不會(編譯)。 – mikyra 2013-03-25 19:27:14