Использование заголовков DirectX из Wine для компиляции под MingW

Я пытался встроить поддержку шейдеров HLSL в проигрыватель VLC. Я столкнулся с кирпичной стеной из-за отсутствия служебных методов в d3d9.h в MingW для загрузки файла .fx и компиляции шейдера. Поэтому по совету разработчиков VLC я позаимствовал заголовки DX9 из Wine.

Теперь с включенным включением d3dx9.h у меня много ошибок компилятора в виде:

Описание Тип расположения пути к ресурсу /mingw/lib/gcc/mingw32/3.4.5/../../../../include/d3dx9core.h Объявление для параметра «D3DXCheckVersion», но нет такого параметра ShadedDXPlugin, строка 475 C/ Проблема С++

Может ли кто-нибудь, знакомый с MingW, GCC, DirectX и Wine, пролить свет на то, как заставить шейдеры HLSL работать через GCC?


person whatnick    schedule 18.01.2010    source источник


Ответы (1)


Команда VLC снова вернулась с некоторыми замечательными предложениями, и я хотел бы, чтобы они в какой-то момент участвовали в крысиных гонках репутации stackoverflow:

1) Скомпилируйте вызовы загрузки и сборки шейдера DirectX в отдельную библиотеку DLL на основе MSVC, которая может получить доступ к стандартным заголовкам Microsoft. Затем свяжите эту DLL с VLC.

2) Вставьте трюк GetProcAddress, чтобы получить D3DXAssembleShaderFromFile в файле d3d9.h. Упомянутая функция в утилите DirectX для создания ассемблерного шейдера из HLSL.

person whatnick    schedule 23.01.2010