On Tue, 31 Oct 2000, Drew Northup wrote:
> Sounds good to me so far......, the only major stumbling blocks to
> implementing the full-screen video so far as I see it are as follows:
> 1) We will need some sort of separate status window, so that if something,
> somewhere goes awry, we can always drop back to some sort of
> console/std-error and recover,
This could be resolved by using a special "system key" (let's say sclock
or alt+something) to switch from full-screen guest to plex86 main console
(or window) where you could manage running guests (switch/kill/change
priority etc.).
> 2) If we plan for this to run on win32 ever in the future we'll need to deal
> with the fact that windows just loves to access video memory directly (there
> is some sort of addressing "lock-out" to keep things down to the current
> "master" application.....--i.e. in win95,98,&98se the shell graphics/master
> window handler, explorer.exe.... a module kernel32.exe, is usually the
> master--but I have no idea how robust this is.....) and not use some sort of
> host buffer space in userland. If X uses a similar "painting method" (does
> it?) then we could, in theory, "grab" the video output pipe directly..., or
> maybe easier yet, we could just make the plex86 output take up one entire
> virtual desktop and just use the local accelerated X video routines instead
> of writing our own & re-inventing the wheel...per se.
Kernel module is allowed to do so, right? Btw, also Windows uses similar
to this technique to implement directx hardware acceleration? I see.
> These routines
> should, in theory, allow us to get to the frame/z buffers pretty directly
> with little overhead. I am not sure, but I do believe that this is how the
> job is done for many "DirectX" [(c) MS] style games. So far as I know the
> rest of them just grab the output device directly, and do the rendering
> themselves with no Win32API help--which is something that, to my knowledge,
> unix systems don't really appreciate!!!
>
UNIX is all about portability, but in case of plex86 which is PC-only
project it's probably not worth to keep efforts for abstracting everything
(the emulated hardware is the same), however for bochs (which is not less
valuable project) portability is of course the only way.
Uhus