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.