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.
Re:The Evolution of Direct3D
by corresation on Monday July 22, 2013 @01:45PM
(#6085252)
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.
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.