The Microsoft
DirectX Window System (nicknamed "direct hex" by programmers) is an implementation of the X Window System for, unsurprisingly, Windows. It offers superior video output performance on the ATI and NVidia processors and inferior video output performance on all other processors, including the ones from AMD and Intel. It should be noted that Microsoft doesn't participate in either
holy war, instead preferring to remain completely neutral in the question of vendor preference. For another example of Microsoft's
neutrality, see
x64.
DirectX differs from the official X implementation, which is stolen from XFree86, in the following
minor details:
* It isn't stolen. Theoretically, nobody can steal it as well, and practically, nobody cares. Occasionally, the Free
Sockpuppet Foundation goes nuts and shouts, "You Wine
heretics, you stole it all, you gave up to
the evil empire, we're doooomed!!" but it's been quite a while since anyone actually listened to them.
* It has made
Ctrl-Alt-Del a well-known key combo.
* It is
object-oriented to the point of
granularity, passing thru your hands if not micromanaged a small grain at a time in order to produce the smallest of inputs. Its object orientation is language-independent, but crappy in the one true language. Unless you manage to find a cool wrapper library, which will immediately slow down performance almost to the point when you forget about your games and enjoy a
slideshow.
* It is easy to use. Seriously. You only need to download a 200 MB
SDK and forever forget about these*** stupid->IID_IPointers. It's slightly easier to use than
OpenGL without downloading the SDK, which is a significant argument in favor of DirectX as downloading an SDK is no longer a problem in the digital millennium. Until you try to port your application.
* It doesn't include a window management system, there is already one in Windows and we are trying to be as
minimalistic as possible. You cannot find an X system distribution as small as 20 MB which includes everything you ever need, including Direct1D, Direct2D DirectDraw, Direct3D, Direct4D, DirectSound, DirectShow, DirectHide, DirectInput, DirectPrint, DirectCD, DirectUSB and all the other subsystems for "direct"
-ly (through a small, small hardware
abstraction layer called Windows device driver and Win32 API) accessing all imaginable hardware. Until the vendor once again misconfigures the driver. But hey, it's not Microsoft's fault.
* Windows Vista finally bundles a DirectX window manager called
Aero, which is a significant improvement over the best X window managers on Earth, such as
TWM. From this point, DirectX/Aero will support OpenGL natively, eliminating the extra layer called
ICD, for a small performance overhead of 50%. (Some say that ICDs can still be used, but Microsoft predicts that nobody will want to have these beautiful,
eye-candy window borders to be even temporarily disabled to run some lame attempt on producing a 3D graphics library.
* It does run on your new video card, which is a vast improvement over the official X. The only
drawback is that by the time you cover the security holes in the only system it supports one true system, it will be obsolete by at least a dozen new video cards, and all the coolest DirectX business applications will refuse to run on your card, but will run just fine on the card immediately succeeding yours. Until you install that one.
* Unlike X and its evil NPOV'ized some-say-that-it-is-evil spawn OpenGL, whose goal is not to add any functionality unless the hardware vendors and end users are rioting around your company's headquarters, the goal of DirectX is to add as much objects, function calls, layers of abstraction and obfuscated code as possible, regardless of whether any currently existing hardware is actually capable of understanding what DirectX wants from it, let alone doing what's asked. This
clearly shows that Microsoft is thinking of the future and introducing innovation, quantity obscuring quality.