Here's one example, Microsoft don't do DirectX 10 or 11 features on Windows XP - the true reason for this is they want you to pay to upgrade to a newer version of Windows. Mesa, Intel, Nvidia, ATI, etc - none of these are likely to evaporate soon). This is a good thing as it means if it doesn't suit one particular vendor's interest to keep developing it then other vendors will still provide it (eg. * There is more than one implementation of OpenGL. The equivalent in DirectX (at least older versions) is device capabilities, which are a pain to use in comparison, and make programming more complex. * As someone pointed out, OpenGL has an extension mechanism that standardises OpenGL access to particular features of your hardware. The fact is OpenGL works on Windows and everything else, while DirectX is limited to Windows (and version-limited with XP) and XBox.
If OpenGL didn't work on Windows then the cross-platform argument would be moot, and clearly DirectX would then be better than OpenGL in an imaginary world where OpenGL didn't work on Windows. These pretty much all run a flavour of OpenGL called OpenGL ES (which is essentially the same as standard OpenGL, with some features removed to get it into silicon).
#Opengl vs directx 12 Pc#
The Windows PC is still important, and important for gaming, but the revenue fraction from it will decrease over time as consoles and phones/pads and consumer devices we haven't yet thought of are all emerging. In fact, true cross-platform (not Microsoft's warped definition of 'cross-platform' which means 'maybe works between Windows releases') is going to be be *more important* in the future, not less important. Think cross-platform doesn't matter? Well, choosing it made $3.5 millions dollars personally for the creator of X-Plane when it was ported to the iPhone - something he says he couldn't do if he had chosen DirectX. OpenGL works on pretty much everything except the XBox (where it could, but Microsoft have deliberately keep it out). Not just Linux, but Windows too! and Macs, and Android, and iPhone, and PS3, and Unix, oh yeah, did I say Windows. Please note that I do OpenGL programming, so it's not just something I read, it's something I use as a developer (in fact, I hope to show some of my hobby work in these forums next week - and it will be OpenGL based). The OpenGL fixed functionality pipeline is easier, and for more modern work GLSL is nicer than HLSL. DirectX since 9 has slowly been converging to a model similar to OpenGL, but OpenGL is still much easier to work with, IMHO (doesn't have as much Windowsesque cruft). * OpenGL is generally considered easier to program. So, if OpenGL and DirectX have similar-enough parity in terms of features you might want to consider OpenGL for the following reasons: There are also features where OpenGL is ahead (and vice versa), eg. Ever since the Khronos Group have taken stewardship of OpenGL it has leapt ahead - to the point where it matches DirectX. They were made when OpenGL was stagnating and not matching DirectX for features. Nb: theOpenGL-vs-DirectX comments by Carmack you talk about are as out of date as the comments he made in 1997.