Est-il possible de développer des applications DirectX sous Linux?

Plus intéressant que tout, mais pouvez-vous comstackr une application DirectX sous Linux?

De toute évidence, il n’y a pas de SDK officiel, mais je pensais que cela pourrait être possible avec le vin.

Vraisemblablement, le vin a une implémentation de l’interface DirectX pour exécuter des jeux? Est-il possible de créer un lien avec cela? (edit: Cela s’appelle winelib)

A défaut, peut-être un compilateur mingw cross avec l’application sous Wine.

La moitié a répondu à ma propre question ici, mais je me demandais si quelqu’un avait entendu parler de quelque chose de ce genre.

J’ai eu de la chance avec ça. J’ai réussi à comstackr cet exemple Direct3D simple .

J’ai utilisé winelib pour cela (package wine-dev sur Ubuntu). Merci à alastair de m’avoir montré winelib.

J’ai légèrement modifié la source pour convertir les wchars en caractères (1 sur la ligne 52, 2 sur la ligne 55, en supprimant le L avant les chaînes littérales). Il y a peut-être un moyen de contourner cela, mais cela a fonctionné.

J’ai ensuite compilé la source avec les éléments suivants:

wineg++ -ld3d9 -ld3dx9 sortingangle.cpp 

Cela génère un binary a.out.exe.so, ainsi qu’un script a.out pour l’exécuter sous wine.

S’il ne s’agit pas de porter mais de créer, vous devriez vraiment considérer OpenGL comme cette API est aussi puissante que DirectX et beaucoup plus facile à porter sur Mac ou Linux.

Je ne connais pas vos exigences, alors mieux vaut le mentionner.

Vous ne pouvez pas créer de lien avec wine, car il s’agit essentiellement d’un appel / traducteur plutôt que d’un ensemble de bibliothèques auxquelles vous pouvez accéder. Si linux est important, ouvrez OpenGL / SDL / OpenAL.

Je crois (je n’ai jamais essayé) que vous pouvez comstackr des binarys Linux contre winelib. Cela fonctionne donc comme un exécutable Linux, mais avec les bibliothèques Windows.

http://www.winehq.org/site/docs/winelib-guide/index

allez dans le répertoire avec la source et tapez:

 winemaker --lower-uppercase -icomdlg32 -ishell32 -ishlwapi -iuser32 -igdi32 -iadvapi32 -ld3d9 . make wine yourexecutable.exe.so 

Si vous obtenez cette erreur:

 main.c:95:5: error: 'struct IDirect3D9' has no member named 'CreateDevice' 

assurez-vous d’avoir nommé votre fichier main.cpp et non pas main.c.

Il n’existe actuellement aucun moyen de comstackr du code DirectX pour cibler directement Linux. Vous construirez votre application comme vous le feriez normalement, puis l’exécutez en utilisant un calque de compatibilité tel que Wine / Cedega.

Wine est le seul moyen d’exécuter DirectX sous Linux

vous pouvez comstackr des applications directx sous Linux, mais ne les lancez pas tout de suite. Si vous utilisez un crosscompilator qui crée Windows Exe et pointe vers Windows SDK et DirectX SDK.