but i am not sure if DX source is available to everyone as in case of OpenGL
Well, you put your foot in it there. OpenGL is not open source GL. There is nothing which makes it open source. People may have written open source versions of it. Doesn't make it inherently open source. If that is your argument then DX is equally open source (since WINE wrote an open source version of it).
The fact is, open sourcing DX would not help WINE much. The issues they have to deal with are not really affected by the fact that they don't know the source. And why exactly should they open source it anyway? Because you want them to? It is amazing how people can behave nowadays. MS isn't forcing any open source projects to close off their code. So you don't really have a right to demand that they open their source. If you don't appreciate their closed source, don't use it.
what reply is this? i can't understand a word of it. You are saying that "In the end DX10 is not really as dependent on Vista as it could have been", so why are they giving it on Vista only? Isn't this a clear attempt to sell of their crappy OS which no one wants?
Sorry that you can't understand basic English. My answer was in two points:
1. That you can't just demand that because you bought a card and a game that the OS manufacturer bend over to help you out. Microsoft never promised you a damned thing about getting DX10 on XP. As an example I said, replace DX10 with 64 bit CPU and say to yourself "I bought a 64 bit CPU and a 64 bit game!! MS should give me a free 64 bit OS!"
2. That they perhaps are not as dependent on Vista with DX10 as they
should have been. I criticise the decisions they made that allowed that. But that doesn't change anything. And I'll show you why.
If DX10 is not that dependent on Vista, then why haven't they released on XP too?
Oh, and while we are at it, can they add it to Win 2000, Win 98, Win 95, DOS and Xenix? Tell me, why should they go ahead and make such an effort to port DX10 which is architected around Vista (though not completely dependent on it), and then rewrite it to fit XP, a platform that they do not wish to support? They supported XP for more than 5 years. In the computer world, if you want support beyond that, you buy a mainframe OS. Don't believe me? Try finding updates for Red Hat 9.
Adding DX10 to XP would have been difficult. Not impossible. But difficult. It costs a lot of money. Why would they do that? Everything that MS develops, they are forced to support. So they can't just release a quick and dirty version of DX10. If they had done that, people like you would be screaming "DX10 on XP is deliberately crippled as compared to Vista!!! OMG!!!!"
So, ur argument that DX API is no secret and MS hasn't made it window specific is not clear to me.
I can't make it any clearer. What is it, that you say MS should do, to make it easier for others to implement DX? Implement it for them? And why should they do that anyway? Even in the EU, where they have been told to release their APIs, your argument would not hold. Because they HAVE released their APIs. Everyone knows them. And what they are supposed to do.
And in fact, people CAN implement DX. Don't believe me? What the hell do you think NVidia and ATI do in their drivers? They are literally implementing DX. Really. Their drivers consist basically of calls to hardware routines in their gfx cards to implement the various APIs of DX (that is, rather than use the pure s/w version of DX, they hook in and replace the functions with ones that make calls to the hardware). Seems that if they can do it, other people should be able to too. Sure, this reply is a very simplistic view of a complicated architecture (stuff doesn't happen exactly as I put it), but it is sufficient for this forum. If you want to know more, you can read the graphics card driver reference. You can find it on MS's site. Just go download KMDF. It is a free download.
I think DX only provides the relevant API's to do the stuff but the logic behind the API is hidden
Have you ever programmed a computer? To do anything? Even "Hello World"? The API provides (for each function):
1. Function Signature
2. What the function does.
3. API ordering semantics if any.
If it did not, how do you think anyone would ever use it? And thousands of game devs use it. In case you don't realize -
those 3 points above are the logic
That is how a spec is written BTW. And that is how MS develops it too - they write the spec first, then the developers take the spec and implement it. Their internal specs are more detailed; that is because they contain justification for design decisions, caveats and implementation specific information. None of which you would need to reimplement DX (as a whole).
Tell me, do you know what printf in C does? If so, can you implement it for yourself, without looking at the current library source code? I can. So can any programmer. The specification of printf in a man page (or MSDN) or the C standard is sufficient to be able to do so. MS's documentation for DX is sufficient too. If you can understand what it does, you can write a version too. It may be somewhat buggy; guess what - so is MS's version.
When people burn MS for Vista and DX10, I'm suprised that they aren't screaming at MS for making DX 10.1 the real DX10. That is the real complaint people should be making.