Proposing another thing if implementing d3dx9_36.dll is too much I propose to implement: 1 D3DXAssembleShader 2 D3DXAssembleShaderFromFileA 3 D3DXCompileShader 4 D3DXCompileShaderFromFileA 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
Which are the functions that Sid Meier's Civilization 4 calls and are not yet implemented from d3dx9_32 (36)
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.
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.
Hi Luis,
2008/3/13, "Luis C. Busquets Pérez" luis.busquets@ilidium.com:
Proposing another thing if implementing d3dx9_36.dll is too much I propose to implement: 1 D3DXAssembleShader 2 D3DXAssembleShaderFromFileA 3 D3DXCompileShader 4 D3DXCompileShaderFromFileA 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
Which are the functions that Sid Meier's Civilization 4 calls and are not yet implemented from d3dx9_32 (36)
Your best bet for the A function is to forward them to the W versions. These do basically the same thing. Call the W version from the A version and convert any wide strings to ansi strings, this is what happens all throughout wine. Also, do you have any plans for adding conformance tests so you can compare it with windows behavior?
Cheers, Maarten.