Since the windowed display will enevitably be run in an X session that's
already in an SVGA mode, why go through so much grief in video.cc? IMHO,
video.cc shouldn't contain any emulated-device-specific code. That stuff
should be in separate module code that links through functions exported from
svga.cc.
Since this display will be going to a window, wouldn't it be a good idea to
have plex maintain a separate "video memory"-style buffer? That way all the
drawing that video.cc will do gets written to that buffer. This should make
it easier to implement direct writing in a full screen mode simply by mapping
the actual video memory into the emulated "video memory" area.
You'll have to excuse me if this is already what you had in mind. I must've
misread something...