Microsoft DirectX
Windows 95 posed a significant problem for video game developers. Most titles still ran under DOS, which allowed applications to access hardware directly. With Windows and its secure memory management, graphics performance collapsed. Microsoft risked losing developers if nothing changed.
The solution came from a small company, RenderMorphics, whose source code Microsoft acquired. This became the starting point for DirectX. The early versions impressed no one: bugs galore, programming interface of daunting complexity. The system relied on execute buffers, packages containing lists of vertices to display and their instructions. Developers hated this approach.
Everything changed with DirectX 5. The DrawPrimitive interface radically simplified programming without sacrificing performance. Microsoft had just created a credible option for developing games under Windows. The video game market was exploding, and the battle between DirectX and OpenGL began in earnest.
John Carmack, the lead architect at id Software, didn’t mince words in December 1996. He judged DirectX “terribly flawed,” an API that imposed absurd constraints on programmers without providing anything in return. Other prominent developers bombarded Microsoft with letters, all advocating the adoption of OpenGL.
Microsoft organized comparative demonstrations to prove DirectX’s superiority. These tests were contested: the comparison methods seemed dubious. Debates often revolved around software rendering performance, an aspect that would quickly lose importance with the arrival of powerful and affordable graphics cards.
DirectX prevailed despite the controversies. The API integrated comprehensive tools for managing sound and input devices. The Apple market weighed little, which reduced interest in cross-platform compatibility. DirectX could also query graphics hardware capabilities, an appreciable asset.
The technical architecture relied on COM (Component Object Model), which allowed its use from C++, C# or Visual Basic. Pure C remained possible, at the cost of increased complexity. DirectX progressed alongside OpenGL in supporting custom shaders, giving programmers fine control over the graphics pipeline.
DirectX 8 abandoned DirectDraw, the 2D API that had long been a pillar of the system. Three years later, DirectX 10 arrived with Windows Vista after development conducted in collaboration with application creators and hardware manufacturers.
DirectX 10’s major contribution was the geometry shader, a new programmable stage in the graphics pipeline. Positioned between vertex processing and rasterization, it could generate up to 1,024 primitives from a single input. The designers maintained certain stages in fixed functionality, preferring performance to total flexibility.
DirectX 10 standardized the processing of different programmable stages via a “common core.” This virtual machine unified the management of input-output registers, temporary registers, and resource binding points. It used 32-bit assembly language, but Microsoft encouraged the use of the high-level language HLSL (High Level Shading Language) for programming shaders.
The technology has continued to evolve since. Microsoft wanted to keep Windows attractive to game creators, even if it meant weathering criticism about its business practices and lock-in strategy. DirectX has become an essential industry standard in video gaming.
A contested API at its beginnings transformed into a reference solution through well-conceived technical improvements and a keen understanding of developers’ needs. Technical and strategic choices weigh heavily in technology evolution, intertwining with commercial stakes and community dynamics.