Adobe Type Manager was also made available for a select few PC operating systems available during the early 1990s, including NeXTSTEP, DESQview, and OS/2. Unlike the Windows and Mac versions, these versions of ATM were bundled with the OS itself.
Both Quake and Duke Nukem 3D came out targeting DOS in 1996. Windows development took a while to take off if I remember correctly since DOS apps could run on Windows too so developers had less incentive to switch over at the time
MS-DOS 6.22, the last version of MS-DOS, was released not long before in 1994
Tomb Raider
Command & Conquer: Red Alert
Descent II
Quake
Duke Nukem 3D
all came out in 1996 and no Windows 95 native version was available
To get more developers on board DirectX, Microsoft approached id Software's John Carmack and offered to port Doom and Doom 2 from MS-DOS to DirectX, free of charge, with id retaining all publishing rights to the game. Carmack agreed, and Microsoft's Gabe Newell led the porting project. The first game was released as Doom 95 in August 1996, the first published DirectX game. Microsoft promoted the game heavily with Bill Gates appearing in ads for the title.
We can almost say that 1996 was the pinnacle of "rendering in DOS"
Windows 95 was still DOS-based and DirectX was just beginning to take off; many of the most popular games of that era ran on DOS.
(I remember that the best way to run the original release of Warcraft II was to set its shortcut to "DOS mode," where Windows would exit to DOS, run the game, and then restart Windows once the game exited)
There is a lot of magic and hard-core engineering work on Microsoft's part to that.
Windows/386 is an hypervisor that runs the Windows as one of the VMs, original DOS as another and can create additional DOS VMs. Windows 3.1 then added the capability of this hypervisor to run some limited kinds of native i386 Windows NT applications on their own VMs that can do inter-VM IPC. Windows 95 extended this architecture to the extreme, there was no “Windows in a VM”, Windows was the OS, that ran Win32 API processes directly, traditional 16bit applications also mostly directly and mainly: it managed bunch VM86 VMs. Prime VM of these ran the original DOS with all of its drivers, which was then used for hardware that did not have native Windows drivers. Another VMs contained the DOS software that you ran. The whole thing was somehow capable of translating the API calls from not only 3 different client ABIs, but also to 3 different driver ABIs…
-- wikipedia