Am Sonntag 11 März 2007 19:40 schrieb Jesse Allen:
On 3/10/07, Stefan Dösinger stefandoesinger@gmx.at wrote:
Hi, Thinking about SoC I though that starting a DirectX 10 implementation may be a good summer of code project. I do not mean implementing the full d3d10 lib, that would be way to much, more starting the infrastructure. Henri disagreed with the idea, so I thought I'll write a mail for public discussion :-) . Looking at the timeline for SoC I hope it isn't too late.
My idea is to start a d3d10 implementation up to the following point:
-> Add a winver Windows Vista to make version checkers happy :-) -> Create the d3d10 lib and start the .idl file for header generation -> Write stubs for the functions to allow the app to create all the interfaces -> Write test cases for reference counting. ddraw and d3d9 show that Microsoft does not stick to its own COM rules -> Make methods that have already 1:1 equivalents in wined3d call wined3d. Add other methods as required to wined3d. -> Implement them as far as you feel like :-)
I think the good thing about this is that there are is not much knowledge about wined3d and d3d10 necessary at the start. The one who works on it can learn the d3d10 interface while writing the stubs and learn about wined3d when starting to call it.
Opinions? Suggestions?
Cheers, Stefan
The concept is nice, and I'd like to learn 3D graphic APIs better. But when I consider DX10, I don't have any DX10 apps, nor do I have Vista. I'd also be concerned if it is even properly documented if I were to start that way. So I'm not thinking I want to do DX10. However, this idea can be considered with any API that is currently not implemented. So I think I'll want to try this with a smaller more widely used API.
Regarding applications, I have a few of them:
/opt/windows/dxsdk/dx9/Samples/C++/Direct3D10 $ ls BasicHLSL10 GPUSpectrogram PipesGS Bin HDRFormats10 ShadowVolume10 CubeMapGS HLSLWithoutFX10 SimpleSample10 DisplacementMapping10 Instancing10 Skinning10 DrawPredicated MotionBlur10 SoftParticles EmptyProject10 MultiStreamRendering SparseMorphTargets FixedFuncEMU ParticlesGS Tutorials
21 applications, so it is a widely used API. Oh ooops, those are just the sdk demos. And only 19 of them, bin/ and EmptyProject10/ do not really count...
Jokes aside, there aren't any dx10 apps yet, except some demo apps. The first one to be expected is Halo 2 on April 24th afaik. The only thing is that MS has created some hype around dx10 recently. It would give us some nice publicity if the Halo 2 box states "Runs on Windows Vista and higher" and winehq.org says "Runs Halo 2 on Linux, MacOS, Windows XP and earlier"
I do not think d3d10 hardware is required yet, the reference rasterizer should work for the start. It is a long way to get any actual rendering going. Regaring Vista, the nice thing is that Students get Educational licenses cheap. But the license should be checked carefully. I for example may use it only for educational purposes. As I am working for CodeWeavers my hacking on wine isn't purely for educational purposes. No idea of SoC can be considered an educational thing.