[Parts of] DirectXlibrary [are] object oriented. OpenGl is not.
But what good is object oriented if it is an ugly mess?
More to the point, who cares if DirectX is object oriented if it is completely non-portable? Obviously some people care, or else it wouldn't have been brought up on MostGamesProgrammersDontGrokObjectOrientation.
OpenGL is used for more than games. DirectX is increasingly being used by applications also. In fact, an increasing number of applications (ThreeDstudioMax?, LightWave are two) offer a choice between DirectX and OpenGL, indicating that they've abstracted away the 3D toolkit and have their own class hierarchy that works on either. In fact, it didn't use to be uncommon for games to offer a choice between Glide, DirectX, or OpenGL. Of course, now Glide is dead, and most games seem to force you to DirectX or OpenGL without a choice.
So, if you are abstracting your program away from the 3D toolkit used to display on the screen, does it matter if the 3D toolkit is a simple state machine, or nicely (or not) designed objects? I don't think so.
Only stupid programmers target platforms other than WindowsXp for games.
Err... what about Xbox, Playstation 2, and the Nintendo? Those have larger markets than Windows XP and none of them run XP, and only the Xbox supports DirectX.
An interesting analysis of the various gaming consoles, part of which discusses target platform selection:
http://www.actsofgord.com/Proclamations/chapter01.html http://www.actsofgord.com/Proclamations/chapter02.html http://www.actsofgord.com/page46.html
Only stupid programmers target platforms other than WindowsXp for games. Give in and get with the rest of the world. Free software and Mac people don't deserve games.
Stupid programmers only target WindowsXp. Smart Programmers target the most platforms by using SimpleDirectmediaLayer.
-- SimonWittber
Targeting a specific platform can give one a speed advantage. Layers of abstraction often cost you performance-wise.
{I think the greater concern would be LeastCommonDenominatorRules. Targeting multiple platforms often means you're targeting the common elements between them, rather than leveraging each platform to its greater potential.}