Graf Zahl wrote:D3D9 is the only viable option here because it's the only one supported by Windows XP. This is also one reason why at this time I consider it pointless to make a D3D version of GZDoom.
Haha, good one! I'm a bit disappointed about the dropped support for Windows 98 so early though.

What IS the lowest officially supported version of Windows for zdoom anyway? Surely XP is out as its not even supported by Microsoft anymore. Windows Vista maybe?
Graf Zahl wrote:The entire video backend is in desperate need of being redone from scratch. The fact that it's quite overengineered with all its classes and dependencies is not going to make this easy, as a matter of fact, a lot of the modern functionality has been hacked into the class hierarchy. This all is very obvious if you consider that the base canvas class everything inherits from is not some abstract parent class but the full implementation of a software renderer. I already had my fun with that 11 years ago when I had to weed out the most inane design issues so that I could plug a hardware renderer into it.
Well the funny thing is that from what I could tell there's no reason for the software renderer/DCanvas part to have anything to do with the video layer. All the video targets of today use a system memory buffer that is rendered into, and then it is copied to the screen. As such, the screen canvas could be new'ed independently from the video layer.
The only exception to this rule is the 'accel' hardware rendering done by the D3D9 target. That could be solved by using a different pointer/class entirely for that one function.
Graf Zahl wrote:(And the D3D9 code is also a nightmare all of its own with its 100k source file...)
I actually suspect 90% of that code isn't even in use and could be deleted. Personally I would solve this part in a refactor by writing a new D3D11 class and move over the few parts from the D3D9 target I'd need. Especially since the booting code of the D3D9 target is mixed together with DirectDraw in something that might have made sense back in the 98 -> XP transition age but certainly not anymore.