Proč prostě nepoužít OpenGL? Podporuje všechny funkce DirectX. Máte konkrétní důvod používat DirectX? Z nějakého důvodu Microsoft vytvořil DirectX a myslím, že neviděli žádnou potřebu umožnit jeho spuštění na Linuxu.
Hry DirectX můžete spouštět v Linuxu pomocí Wine. XNA můžete na Linuxu naprogramovat pomocí MonoGame. Ale všechny tyto používají OpenGL k poskytování hardwarově akcelerovaného vykreslování. AFAIK, OpenGL bylo (a pravděpodobně bude) jedinou možností na Linuxu v dohledné budoucnosti.
Je možné napsat vlastní implementaci DirectX? Jistě – ale vyžaduje to psaní ovladačů, proprietární znalosti a pravděpodobně příliš vysoké náklady na to, aby z toho někdo OPRAVDU těžil.
EDIT:V dnešní době je DXVK velmi reálným a výkonným způsobem spouštění aplikací DirectX na Linuxu.
DirectX je oblek API:
- Direct3D (kreslení 3D grafiky)
- Grafická infrastruktura DirectX (výčet adaptérů a monitorů a správa swapovacích řetězců)
- Direct2D (kreslení 2D grafiky)
- DirectWrite (fonty)
- DirectCompute (GPU Computing)
- DirectSound3D (přehrávání 3D zvuků)
- Média DirectX (DirectAnimation pro 2D/3D webovou animaci, DirectShow pro přehrávání multimédií a streamování médií, DirectX Transform pro webovou interaktivitu a Direct3D Retained Mode pro vyšší úroveň 3D grafiky)
- Diagnostika DirectX (nástroj pro diagnostiku a generování zpráv o komponentách souvisejících s DirectX, jako jsou audio, video a vstupní ovladače)
- Mediální objekty DirectX (podpora streamovaných objektů, jako jsou kodéry, dekodéry a efekty)
- Přímé nastavení (instalace komponent DirectX a detekce aktuální verze DirectX)
Komponenty DirectX jsou zastaralé, ale stále jsou podporovány
- DirectDraw
- DirectInput
- Přímé přehrávání
- DirectSound
- DirectMusic
Jak můžete vidět, mnoho částí DirectX obleku API by bylo potřeba přepsat s funkčností pro ovladače napsané pro Linux. Také některé části obleku DirectX budou pravděpodobně volat do operačního systému Windows a tento kód by se musel přepsat pro počítač s Linuxem, aniž by došlo k porušení částí DirectX nebo operačního systému Windows, které byly vytvořeny kopií.
Ano, můžete napsat open source API oblek, který dělá stejné věci jako DirectX pro Linux, ale bez velké znalosti zvukových a grafických ovladačů/podpory jejich výrobců pro Linux by to byl velmi těžký úkol.
Nicméně, pokud váš dotaz byl spíše "Mohu získat/zapsat něco, abych mohl spouštět hry a programy vytvořené pomocí DirectX pro běh na Linuxu?" v tom smyslu, zkrátka ne kvůli pravděpodobnějšímu porušení autorských práv.
AFAIK, DirectX obsahuje 3 části
- Ovladač dodavatele (poskytuje nízkoúrovňové rozhraní API definované DX)
- Knihovna DirectX (k přístupu k hardwaru používejte nízkoúrovňové rozhraní API definované DX, poskytuje rozhraní DirectX API)
- Software (použijte rozhraní DirectX API, např. hru)
Neexistuje žádný ovladač poskytující nízkoúrovňové API definované DX na linuxu, takže i to je možné poskytnout knihovnu DirectX, ale nebude to fungovat bez správného ovladače dodavatele a nevidím, zda se nějaký dodavatel chystá. vytvořit jeden pro jejich hardwarovou platformu.
Vaše otázka je v roce 2019 chybná. DXVK je implementace implementace D3D11 a D3D10 pro Linux pomocí Vulkan a Wine
Mesa má také nativní implementaci Direct3D 9, ale pokud vím, nikdo ji kromě vína nepoužívá