Portál AbcLinuxu, 8. května 2024 22:10

DirectX ve Wine

13. 5. 2008 | David Watzke
Články - DirectX ve Wine  

Pro hraní her využívajících DirectX pod Wine je třeba jej nejdříve nainstalovat. V tomto článku se dozvíte, jak nainstalovat DirectX 9.0c do Wine a jak nastavit různé související věci v registrech.

Co je to DirectX?

Microsoft DirectX je kolekce programovacích rozhraní (API) pro úlohy týkající se multimédií, především pak videa a programování her pro Microsoft Windows. Názvy všech těchto API původně začínaly na "Direct", například Direct3D, DirectDraw, DirectMusic, DirectPlay, DirectSound a podobně. DirectX byl obecný pojem, který označoval všechny tyto "Direct"-něco API a stal se názvem kolekce. Jak léta plynula, některá API časem zastarala a byla nahrazena, takže tato konvence pro pojmenování již tak docela neplatí. Vlastně se "X" uchytilo natolik, že nahradilo část "Direct" v některých nových DirectX technologiích, jako jsou XAct, XInput a další.

Direct3D (API pro 3D grafiku v rámci DirectX) je široce využíváno ve vývoji počítačových her pro Microsoft Windows, Xbox a Xbox 360. Direct3D se využívá také v jiných programech pro vizualizaci a grafické úlohy, především CAD/CAM, a to kvůli rychlému vykreslování vysoce kvalitní 3D grafiky na kompatibilním hardwaru. Jelikož je Direct3D pravděpodobně nejznámější API z DirectX, tak se pro něj nezřídka používá obecný název DirectX.

Konfigurace Wine

Následující návod platí pro Wine verze 0.9.58, 0.9.59 a 0.9.60 s čistou konfigurací a DirectX 9.0c redistributable vydané v březnu 2008 (stažení z FileHippo.com, 69,5 MiB).

Začněte spuštěním winecfg. Vytvoří se adresář ~/.wine s výchozím obsahem a poté se spustí grafický konfigurační nástroj, ve kterém nastavte verzi Windows na 2000, upravte si zvukové nastavení podle vašich potřeb (možná nebude třeba nic měnit) a případně si aktivujte virtuální plochu (záleží pouze na vašich preferencích). Winecfg nezavírejte a zkopírujte do adresáře ~/.wine/drive_c/windows/system32 nativní knihovny mscoree.dll a streamci.dll z Windows (pokud Windows nemáte, dají se najít na webech jako je dlldump.com, dll-files.com, dll-download.net).

Potom ve winecfg přejděte na tab "Knihovny", přidejte do seznamu mscoree a streamci (bez přípony) a obě položky upravte tak, aby se používaly nativní verze. Poté změny potvrďte stisknutím OK. Je třeba takto nastavit docela velké množství knihoven a rychlejší než přidávat vše ručně, je otevřít si soubor ~/.wine/user.reg, najít v něm sekci [Software\\Wine\\DllOverrides] a změnit ji tak, aby obsahovala následující:

"d3d8"="builtin"
"d3d9"="builtin"
"d3dim"="native"
"d3drm"="native"
"d3dx8"="native"
"d3dx9_24"="native"
"d3dx9_25"="native"
"d3dx9_26"="native"
"d3dx9_27"="native"
"d3dx9_28"="native"
"d3dx9_29"="native"
"d3dx9_30"="native"
"d3dx9_31"="native"
"d3dx9_32"="native"
"d3dx9_33"="native"
"d3dx9_34"="native"
"d3dx9_35"="native"
"d3dx9_36"="native"
"d3dxof"="native"
"dciman32"="native"
"ddrawex"="native"
"devenum"="native"
"dinput"="builtin"
"dinput8"="builtin"
"dmband"="native"
"dmcompos"="native"
"dmime"="native"
"dmloader"="native"
"dmscript"="native"
"dmstyle"="native"
"dmsynth"="native"
"dmusic"="native"
"dmusic32"="native"
"dnsapi"="native"
"dplay"="native"
"dplayx"="native"
"dpnaddr"="native"
"dpnet"="native"
"dpnhpast"="native"
"dpnlobby"="native"
"dsound"="builtin"
"dswave"="native"
"dxdiagn"="native"
"mscoree"="native"
"msdmo"="native"
"qcap"="native"
"quartz"="native"
"streamci"="native"

Soubor uložte. Nyní jste připraveni instalovat.

Instalace DirectX 9

Přejděte v konzoli do adresáře, kam jste stáhli instalační soubor DirectX a spusťte:

wine directx_mar2008_redist.exe

Objeví se dialog, ve kterém zadáte cestu, kam chcete DirectX rozbalit (můžete kamkoliv). Po rozbalení přejděte do adresáře, který jste zvolili v dialogu, a spusťte:

wine DXSETUP.exe

Instalace je prostá: souhlasím, další, další, dokončit. To je vše.

Nyní máte k dispozici všechny nativní knihovny DirectX 9 a můžete si jednotlivě pro každou knihovnu nastavit, zda se má použít nativní nebo vestavěná. Toto nastavení lze vytvořit pro každou aplikaci zvlášť pomocí zmiňovaného winecfg.

Tato část článku je volným překladem článku DirectX 9.0c March 2008 redistributable on Linux with Wine v blogu Wine Review.

Záznamy v registrech

Wine používá systém registrů kompatibilní s Windows a stejně jako tam v něm lze nastavit a poladit různé věci. Občas je to dokonce jediný způsob, jak něco nastavit. Grafický editor registrů (stejný jako ve Windows) spustíte příkazem regedit.

Nastavit Direct3D lze v HKEY_CURRENT_USER -> Software -> Wine -> Direct3D. Platné jsou řetězcové položky s následujícími názvy:

DirectDrawRenderer

Určuje, který backend se použije pro vykreslování (DirectDraw). Platné hodnoty:

RenderTargetLockMode

Nastavuje režim čtení a zápisu framebufferu zatímco je zamčený. Platné hodnoty:

OffscreenRenderingMode

Nastavuje režim "off-screen" vykreslování. OpenGL běžně vykresluje do nějakého okna, které lze vidět na monitoru, ale občas je vhodné vykreslovat do bufferu, který není zobrazený, a tomu se říká "off-screen" vykreslování. Platné hodnoty:

UseGLSL
Lze nastavit hodnoty "enabled" (povoleno) nebo "disabled" (zakázáno). GLSL je zkratka pro OpenGL Shading Language, což je zvláštní vysokoúrovňový programovací jazyk, který usnadňuje programování shaderů. Od Wine verze 0.9.49 je ve výchozím stavu povolený. Při zakázání se použijí ARB shadery. ARB je OpenGL Assembly Language a jde o nízkoúrovňový jazyk pro programování shaderů. ARB (na rozdíl od GLSL) nepodporuje různé vychytávky (flow control, branching), ale stále se (díky své přenositelnosti) používá.
VideoMemorySize
Nastavuje množství emulované video RAM. Výchozí hodnota není pevná, nastaví se na základě jednoduché autodetekce založené na odhadu z OpenGL řetězců.

directx need for speed prostreet
Need for Speed ProStreet, 1,4 MB

Související články

Seriál: Zpravodaj o Víně
Wine aneb nalijme si čistého vína
Corel PHOTO-PAINT 9 for LINUX
Mail virus pro Linux
Staré dobré hry
Hry v Linuxu
Kulečníkové simulátory

Odkazy a zdroje

DirectX 9.0c March 2008 redistributable on Linux with Wine
winetricks
Useful Registry Keys

Další články z této rubriky

Linuxové foto novinky: nejen darktable 2.2 a Rawtherapee 5
Linuxové foto novinky: GIMP konečně prolomil 8bit mez
DLNA v praxi: Android
Technologie DLNA na Linuxu v praxi – PS3 Media Server
Technologie DLNA na Linuxu v praxi – 1

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.