hedwards: I'm not convinced. DirectX is Windows only or now Windows and XBox only, the only reason that MS created it was to make it more challenging for developers to also support Apple computers.
ET3D: That's a huge exaggeration of Apple's importance in the 90's. Also far as I could find OpenGL only came to the Mac on OS 8, so Direct3D predated OpenGL on the Mac. In short, you're dead wrong.
hedwards: it's been around for a much longer time than DirectX.
ET3D: The first version of OpenGL appeared in 1992, and far as I know was limited to SGI workstations at the time. The first company that implemented OpenGL in its OS (again, AFAIK) was Microsoft, in Windows NT. It also included OpenGL in Windows 95. So if anything, Microsoft was OpenGL's biggest supporter.
But it did want a gaming API to work with the newly released 3D accelerators, and OpenGL wasn't right for that (as I explained before), so it created Direct3D. And then it went and tried to merge it with OpenGL. According to Wikipedia:
"On December 17, 1997, Microsoft and SGI initiated the Fahrenheit project, which was a joint effort with the goal of unifying the OpenGL and Direct3D interfaces (and adding a scene-graph API too). In 1998, Hewlett-Packard joined the project. It initially showed some promise of bringing order to the world of interactive 3D computer graphics APIs, but on account of financial constraints at SGI, strategic reasons at Microsoft, and general lack of industry support, it was abandoned in 1999."
So yes, eventually Microsoft obviously decided that it was better to go its own way, but it's clear from the way history went that your perception of it is as wrong as it can get.
Nothing in there changes reality. Even accepting all of that as facts, it doesn't really change reality here. MS regularly uses other people's ideas until they can twist them to their own ends. I take it the phrase "Embrace, extend and extinguish" isn't familiar to you. They tried the same thing with HTML during the browser wars and the main reason why they wound up winning was that they could ensure that all Windows computers had a copy of Internet explorer on them. And as a result a larger install base.
As far as DirectX goes, it is a much more recent standard and Microsoft could easily have joined the working group and improved it rather than creating an MS only API at a time when Windows was by far the largest source of OSes in the world.
I think ti's interesting how you choose to ignore the context within which all of this was going on.
blotunga: TL;DR, but comparing DirectX to OpenGL (and I'm an OpenGL fan) is like comparing a car to a drivetrain. Direct3D can be compared to OpenGL because it offers roughly the same features. DirectX however is something akin to SDL, it's a huge stack for creating games. As for why people get used to it: convenience. People don't like change, so if you have a 100 engineers knowing how to work with DirectX they won't switch magically to OpenGL + something else for the other stuff (by other stuff I mean: DirectPlay, DirectSound, DirectInput etc.).
I have no particular issue with the other stuff. OpenGL didn't help with any of that and I'm not aware of any other option at the time other than coding that stuff from scratch. A lot of that would wind up being platform specific anyways as nobody had created a crossplatform set of libraries to do it. I certainly wouldn't blame MS for not making that section of API windows only.
But replacing something that was cross-platform with a Windows only API and then using the size of the company to ensure that was the version that was used is not something I can support.