Following your comment I understand that you will be implementing the hard core of D3DXCompileShaderxx.
Nevertheless, I have already a simplification of the D3DXCompileShaderFromFilexx functionsStefan Dösinger escribió. This are being work referring to D3DXCompileShaderFromFileExW on the basement, i.e:
D3DXCompileShaderFromFileA --> D3DXCompileShaderFromFileW D3DXCompileShaderFromFileExA --> D3DXCompileShaderFromFileExW D3DXCompileShaderFromFileW --> D3DXCompileShaderFromFileExW
Please find the patch attached. I have tested it with Civilizqation4, which as explained calls D3DXCompileShaderFromFileA. To test 3DXCompileShaderFromFileExA I tried a temporary path of D3DXCompileShaderFromFileA --> D3DXCompileShaderFromFileExA
All this using the work around of implementing the three calling functions (D3DXCompileShaderFromFileA, D3DXCompileShaderFromFileW, D3DXCompileShaderFromFileExA) in d3dx9_32 for testing and now setting the code on d3dx9_36 obviously. The tests have been ok.
Please let me know your comments and if you think that it can be submitted to wine-patches.
Am Donnerstag, 13. März 2008 18:26:17 schrieb Luis C. Busquets Pérez:
Proposing another thing if implementing d3dx9_36.dll is too much I propose to implement: 1 D3DXAssembleShader 2 D3DXAssembleShaderFromFileA 3 D3DXCompileShader 4 D3DXCompileShaderFromFileA
I plan to implement those as a university project now(I already got the general approval for it, just need to sort out the details)
5 D3DXCreateCubeTextureFromFileExA 6 D3DXCreateCubeTextureFromFileInMemory 7 D3DXCreateEffectCompilerFromFileA 8 D3DXCreateEffectFromFileA 9 D3DXCreateTextureFromFileExA 10 D3DXCreateTextureFromFileInMemory 11 D3DXCreateVolumeTextureFromFileExA 12 D3DXCreateVolumeTextureFromFileInMemory 13 D3DXGetImageInfoFromFileInMemory 14 D3DXGetPixelShaderProfile 15 D3DXGetShaderConstantTable 16 D3DXGetShaderInputSemantics 17 D3DXGetShaderVersion 18 D3DXGetVertexShaderProfile 19 D3DXLoadSurfaceFromSurface 20 D3DXSaveSurfaceToFileA 21 D3DXSaveTextureToFileA
That's a long enough list in itself I think. You shouldn't cap it off at specifically the functions CIV4 calls, but rather look for blocks of functionality.