GSoC 2012 - Implement a few missing functions in D3DX9

Matteo Bruni matteo.mystral at gmail.com
Tue Mar 20 19:04:12 CDT 2012


Il 20 marzo 2012 19:12, Christian Costa <titan.costa at 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/f7fd4619de1cd0ea3bdf9b2fd0195c098d3b9bd0.
> 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&resolution=---
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.



More information about the wine-devel mailing list