[hatari-devel] Issue with switching - fullscreen/windowed mode
npomarede at corp.free.fr
npomarede at corp.free.fr
Tue Feb 9 22:45:09 CET 2010
On Tue, 9 Feb 2010, Eero Tamminen wrote:
> Btw. One more thing I forgot to mention in defence of CRTs :-)...
> Most LCDs I've seen, have a fixed, inferior refresh rate, usually 60Hz
> I think. At least in earlier LCDs I've seen and used, this gives too
> flickery display for my tastes, and it cannot be used to emulate Atari 71Hz
> high-res display properly (for example Mgif had an image display mode which
> relied on that to work properly and which I've had used to view all my
> povray rendereing results)...
>
Well, it's a well known thing that most emulators (the most famous one
being mame) are recommanding to use a CRT as this is often the only
solution to get the same refresh rate as the original arcade/computer
machine.
But the fact is that no one will dump his lcd to replace it with a crt,
whatever we think of lcd and similar monitors, we have to live with our
time, and CRT are clearly dead (industrially and marketingly I mean).
The underlying question could be : should we change the resolution of the
screen when we wish to go fullscreen, to take the closest hardware
resolution offered by the monitor/video card combination ?
Personnaly, I never encountered any problem when pressing F11 and my
lcd monitor goes to 800x600 instead of 1280x1024 for example, so this way
of working is fine with me.
But on the other hand, perhaps we could also have a way of displaying
Hatari's screen by keeping the host current resolution and stretching the
content of Atari's screen ? Of course, some combinations will not look
nice if old/new sizes are not integer multiples of each other. Some
aliasing algorithms (such as those in some mame version) could help
soften those artefacts.
So, perhaps we could implement a new .c file that would take an SDL
surface (320x200 for example) and transform this to a new SDL surface of
any size (in that case 640x400 or 1280x800 would of course be the best
choice for trivial resizing method).
I think such an interface could be easy to add (this extra processing step
should be of course optionnal), just need a function like :
void ResizeSurface ( SDL_Surface *surface_in , SDL_Surface *surface_out , int resize_method );
with resize_method like LINEAR, INTERPOLATE, BILINEAR, BICUBIC, HQ4X, ...
This way, we could offer both scaling modes (hardware or software) and
please everyone :)
Nicolas
More information about the hatari-devel
mailing list