Direct X information Direct X is a set of API’s the Microsoft have written that allows lets you have direct hardware access on their 32 bit OS’s (Win95 and Win NT) while retaining full multitasking and the other benefits of a full OS.

Direct X contains Direct Draw, Direct Sound, Direct Play, Direct Input, Direct Setup and Direct 3D. Direct Draw is the main API for games / demo programmers. It allows full screen, in any mode the video card allows, it also allows hardware acceleration of many important graphics functions, for cards not fully supported a emulation layer provides support for the most important functions.

Direct Draw at last allows PC to use many of the same hardware accelerated tricks that the Amiga was doing years ago. Unfortunately some PC programmers haven’t quite got the idea, that Direct Draw allows you the parallel process the graphics and CPU (i.e. AI) routines with the huge speed increase this can bring. Hopefully the next generation of 2d games should have special FX and AI much better then current games.

Direct Draw isn’t always going to increase speed of all graphics, it mainly increases 2d graphics like sprites, A game like Doom isn’t going to get an speed increase as much as a 2d shoot em up, Doom doesn’t do that much straight memory copies that a blitter would speed up. Another reason is writing by CPU to the frame buffer is often uncachable, meaning system ram must be used and then copied to the frame buffer usually by the CPU. As with most games programming different techniques for different games.

24/4/97 Direct X is now on version 5 beta, but I’m not on the beta program so I’m using the publicly available version 3a. Direct Draw hasn’t been updated much, but Direct 3D is next big thing. Even if the implementation sometimes leaves a lot to be desired, it is getting better and the results with the right video cards are incredible. The OpenGL vs D3D debate while important is very boring and pointless, its very simple to write and indirection layer and then use that which ever wins or even allow the user to select the best driver. The people who love OpenGL, are often guilty of pretending that is a perfect answer, it not. It (imho) has almost as many faults as D3D IM, the main ones are the lack of quality hardware drivers. GLQuake that’s been put forward as a example of how good OpenGL, is also its worst enemy. It doesn’t work on several OpenGL cards and requires very good cards when it does work, Exactly the same problem D3D has. D3D IM execute buffers are its true the biggest load of shit going, their a complicated pain that leaves you with very tricky multi buffer handling, but Direct X 5 has Direct Primitive to get rid of them (whoopee)