Yeh but see the problem with that is directx is a all in one so in programming you just need to know direct x. Open gl is the graphics core audio is the audio etc. but that isn't all in one so you need to know each indiviual thing.
You really don't know what directx is, do you?
DirectX is a name for a collection of Microsoft's
proprietary API's. A collection. That includes API's for sound (directsound) API's for 3d sound (directsound3d), APIs for game controllers (directinput, including the mouse and the keyboard), API's for 2D graphics (DirectDraw), and multiple API's for dealing with 3d video (Direct3D 3,4,6,7,8,9 and soon 10).
There's no "all in one" about it, except that they are all distributed together and they are all owned by Microsoft.
Knowing one of these API's (directinput, for example) doesn't mean you know another one (directsound, for example). Knowing Direct3D 6 certainly doesn't mean you know Direct3d 9, even though they come together in the same package!
There is nothing more difficult about using OpenGL in place of Direct3D and continuing to use Directinput and Directsound.
If Apple could make OpenGL proprietary, there would be nothing to prevent them from calling OpenGL + Core Audio + other crap something like iPlay.