Usando cabeçalhos diretos de vinho para compilar sob Mingw
Pergunta
Eu tenho tentado construir suporte de shader HLSL para Vlc jogador. Eu atingi uma parede de tijolos devido à falta de métodos de utilidade no D3D9.H em Mingw para carregar um arquivo .fx e compilar o shader. Então, sob aconselhamento dos desenvolvedores de VLC, peguei emprestado os cabeçalhos DX9 de Vinho.
Agora, com o D3DX9.H INCLUÍDO EMBLEFICADO, tenho muitos erros do compilador no formulário:
Descrição Caminho do recurso Tipo de localização /mingw/lib/gcc/mingw32/3.4.5/../../../../include/d3dx9core.h Declaração para o parâmetro "d3dxcheckversion", mas não tal parâmetro shadeddxplugin linha 475 c/ Problema C ++
Qualquer corpo familiarizado com Mingw, GCC, DirectX e Wine lançam alguma luz sobre como fazer com que os Shaders HLSL funcionassem via GCC?
Solução
A equipe do VLC voltou novamente com algumas sugestões maravilhosas e eu gostaria que elas entrassem na corrida de ratos da reputação de Stackoverflow em algum momento:
1) Compile as chamadas para o Shader DirectX carregando e montando em um DLLs baseado em MSVC separado, que pode acessar os cabeçalhos Microsoft padrão. Em seguida, ligue para esta DLL da VLC.
2) Insira o truque getProcaddress para obter d3dxassembleShaderFromFile no D3D9.H. A referida função em um utilitário diretor de produzir um shader de montagem da HLSL.