Hacker News new | ask | show | jobs
by AldousHaxley 4712 days ago
As someone who has felt mostly sour grapes toward Microsoft for introducing D3D in the first place instead of adopting OpenGL, it's nice to read a convincing rationalization for why that wasn't done initially, coming from someone who was involved in the process.
2 comments

The 'caps bits' problem is really the core of it. OpenGL in that era was a nightmare for anything resembling game rendering. The OpenGL we have now is pretty reasonable, but back then, Direct3D was a breath of fresh air and DirectDraw was a much saner way to push pixels around efficiently as well. It was hard for me to ever understand why people preferred OpenGL at the time (other than the obvious benefit of theoretical portability). Vendor-specific shader bytecode, UGH.
It was hard for me to ever understand why people preferred OpenGL at the time

OpenGL was elegant and very simple to use, quickly becoming close to invisible. DirectX, in comparison, was layers upon layers of COM book-keeping code.

Of course OpenGL has become like DirectX in more recent iterations, as in the end immediate satisfaction is less important than flexibility.

For me the definition of 'layers' was having to juggle dozens of interacting state flags and mutually exclusive vendor-specific extensions just to draw a dual-textured triangle or render to a render target.

COM really wasn't that much of a hassle in comparison. A couple smart pointer templates and you're off to the races. I can see how a C developer would really resent it though - nothing but a pain compared to GL's regular C, 'everything is void*' api.

I guess it depends upon what period we're talking about here. DirectX didn't add multi-texturing until DX 6.1, half a decade after hitting the market.
This is how I got to understand that not all that Microsoft does is evil.

When one works for corporations of similar sizes, gets to learn that there are many factors at play, than just good or evil deeds.