pold500 / gens-rerecording

Automatically exported from code.google.com/p/gens-rerecording
0 stars 0 forks source link

Full Aero Support for Vista #29

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
Currently, certain actions under Vista will cause Aero to disable and a
compatibility warning to be displayed in the taskbar area. So far, I've
noticed the following does this:

1. EPX when it changes resolution (SonicCD does this for the title screen)
2. Switching between various render modes.
3. Various render modes switching resolution

I'm unsure what causes it but since it doesn't cause any major problems,
I'm proposing it's initially set to a low priority since it is only a minor
bug (and few people currently use Vista, even fewer with Aero).

Original issue reported on code.google.com by farr...@bluetoaster.net on 5 Aug 2008 at 5:26

GoogleCodeExporter commented 8 years ago
Apparently, anything that reads or writes directly to the front buffer 
(lpDDS_Primary
in this case) or could potentially write pixels outside of the window will
immediately disable Aero.

Some of the blitters (I think the assembly-written ones and/or the plain 1x/2x 
ones)
clearly violate this because I've noticed they spray pixels around the screen 
outside
the window if any part of the window goes offscreen, which a proper blit to the
window region wouldn't allow. It's annoying enough to be worth fixing in its own
right, actually. This could also be caused by not having the window clippers 
set up
properly, but I doubt that's the case since it works fine for some of the 
render modes.

The screenshot function reads from the front buffer directly (but I don't think 
it
should) so it probably has the same problem.

I'm guessing the main culprit is the function called Clear_Primary_Screen()... 
it
should probably be changed to clear only the "letterbox" parts in the window 
outside
of the game, and use GDI instead of a direct color fill to the primary buffer 
to do it.

Failing that, if we were to add support for multiple render pipelines (you 
know, like
in other emulators where you can select from GDI, DirectDraw, Direct3D or OpenGL
rendering) that would be a good workaround for people running Vista since they 
could
choose a non-DirectDraw mode to avoid the problem.

Original comment by nitsuja-@hotmail.com on 8 Aug 2008 at 8:51