Il 20 marzo 2012 19:12, Christian Costa titan.costa@gmail.com ha scritto:
Le 20/03/2012 18:43, Józef Kucia a écrit :
Hi there,
I'm writing to discuss my project proposal for upcoming Google Summer of Code. I was recently playing with Wine, looking around in the code and searching through Wine bugzilla. As a result I found out that there is still a quite number of functions missing in Wine's D3DX implementation. However, some of them are probably not used much in a real software. For example, the mostly unimplemented ID3DXSkinInfo interface seems to be not used frequently. In this email I would like to present things which I would like to implement. I hope that implementation of this functions, or at least some of them, could improve Wine compatibility with a few real applications.
Hi Józef,
There are some work already done by Tony Wasserka which didn't get in git: http://repo.or.cz/w/wine/d3dx9TW.git
Notice, though, that most of that code is not really suitable for inclusion in Wine, needing cleanup or more.
I would like to implement the following things:
- Implement D3DXCreateRenderToSurface function and
ID3DXRenderToSurface interface.
I think that's used quite often by applications and a good idea for GSoC.
- Finish the implementation of ID3DXFont, particularly
ID3DXFont::DrawTextA and ID3DXFont::DrawTextW functions.
There is an implementation of it in the Tony Wasserka's repository Christian mentioned. Anyway, I don't know about the quality or the test coverage of that code, so I guess (re)implementing it may still be okay for GSoC. Having a different implementation to look at may even be a good thing, because otherwise implementing font drawing from scratch is not trivial.
- Implement D3DXCreateCubeTextureFrom* and
D3DXCreateVolumeTextureFrom* functions.
That depends on the DDS file format support, I guess.
- Add support for DDS file format in D3DXGetImageInfoFrom* functions.
DDS support has been added in this patch: http://repo.or.cz/w/wine/d3dx9TW.git/commitdiff/f7fd4619de1cd0ea3bdf9b2fd019.... I have an updated version and planned to submit it later. FOURCC support is also missing.
That's interesting. Are you (Christian) still implementing it as a WIC decoder? I was under the impression that some DDS features (cube/volume textures I guess) aren't really supportable that way.
I think I could also implement a few missing functions in ID3DXConstantTable interface, as a bonus task.
That's fine too. This would probably require more effort about writing good tests and figuring out what the implementation needs to do than actually implementing the functions.
I'm looking forward for a feedback. If you find any D3DX's function more important than functions enumerated by me, please let me know. I'm also looking for applications with heavy usage of D3DX dlls, especially applications which are using unimplemented or partially implemented functions (yes, I'm aware about http://wiki.winehq.org/DirectX-D3DX9).
Hmm, that wiki page doesn't look too up to date. I'd look into bugzilla instead ( http://bugs.winehq.org/buglist.cgi?product=Wine&component=directx-d3dx9&... for example).
There is also some other D3DX9 patches lying around that didn't get in.
You may take a look if you want to be sure not to make something more or less already done.
Some duplication of effort is allowed under GSoC, so this is not a strict requirement. Also, if a patch was submitted but it is not in git, probably that means it wasn't good enough. That said, yeah, having two people independently implement the same thing at the same time is not the best.
Cheers, Matteo.