I've done a fair amount of work with DirectX, and I've never particularly had to be cognizant that it used COM.
That's probably more a reflection of DirectX being reasonably well designed.
That's probably more a reflection of DirectX being reasonably well designed.
If you're using an API like DirectWrite (at least older versions) that requires you to implement interfaces to do basic things like load fonts from memory, then the COM underpinnings of the APIs become very apparent.
1. The good COM, which is just a class-like ABI.
2. The horrible OLE COM, which allowed you to embed Word docs in Excel and the like which is what most people associate with COM.