2010-01-18 25 views
0

J'ai essayé de construire la prise en charge de shaders HLSL dans le lecteur VLC. J'ai frappé un mur de briques en raison du manque de méthodes utilitaires dans d3d9.h dans MingW pour charger un fichier .fx et compiler le shader. Donc, sous conseils des développeurs VLC j'ai emprunté les en-têtes DX9 de Wine.En utilisant les en-têtes DirectX de Wine pour compiler sous MingW

Maintenant, avec le d3dx9.h j'ai permis comprennent beaucoup d'erreurs de compilation sous la forme:

Resource Description Emplacement du chemin type /mingw/lib/gcc/mingw32/3.4.5/../ .. /../../include/d3dx9core.h déclaration pour le paramètre "D3DXCheckVersion" mais pas de paramètre de ce type ShadedDXPlugin ligne 475 C/C++ Problème

Tout organisme familier avec MingW, GCC, DirectX et Wine peut-il nous éclairer? Les shaders HLSL fonctionnent-ils via GCC?

Répondre

2

L'équipe VLC est venu à nouveau de retour avec quelques suggestions merveilleuses et je les aime entrer dans la course de rat de réputation stackoverflow à un moment donné:

1) Compiler les appels à DirectX chargement des shaders et d'assemblage dans un DLL séparées basées sur MSVC qui peuvent accéder aux en-têtes Microsoft standard. Puis lien vers cette DLL à partir de VLC.

2) Insérez l'astuce GetProcAddress pour obtenir D3DXAssembleShaderFromFile dans le fichier d3d9.h. La dite fonction dans un utilitaire directx pour produire un shader d'assemblage à partir de HLSL.

+0

seulement 2 votez pour cette réponse ... O_O il mérite beaucoup plus – GameDeveloper