pete-gordon / oricutron

Portable Oric-1/Atmos/Telestrat and Pravetz 8D emulator
http://www.petergordon.org.uk/oricutron/
GNU General Public License v2.0
69 stars 25 forks source link

Feature request : a zoom feature #135

Open TotoShampoin opened 5 years ago

TotoShampoin commented 5 years ago

Hello, this is not an issue but a feature request...

I have a 1920x1080 screen, and the oricutron window is very small... So it would be nice if it was possible to change the size of the screen in both rendering :

For pixel fans or those who have a very small screen

1x (Both rendering) oricutron x1 1x widescreen (OpenGL only) oricutron x1w

The one that is already there

2x (Both rendering) 2x widescreen (OpenGL only)

This one is more interesting for modern screens

3x (Both rendering) oricutron x3 oricutron x3o 3x wide screen (Both rendering (only this zoom has a regular grid in widescreen (1 pix = 4x3))) oricutron x3w oricutron x3wo

And eventually...

4x (Both rendering) 4x widescreen (OpenGL only)

polluks commented 5 years ago

You are looking for hqx At least you have full screen...

laurentd75 commented 5 years ago

@polluks do you reckon it would be possible to integrate hqx into Oricutron? Does it mix well with SDL?

The main trouble is see in any case is it looks like this library is not actively developed anymore, as the links to the "original" library all point to the Wayback Machine...

There seems to be a recent port though (https://github.com/grom358/hqx/) but as stated it uses the DevIL library (http://openil.sourceforge.net/), so again I'm not sure if this plays well with SDL...

polluks commented 5 years ago

I see, at least this emulator uses both libraries http://dgen.sourceforge.net

TotoShampoin commented 5 years ago

@polluks No, I'm not looking for hqx but for a zoom feature.

Now you mention... Why not hqx

nekoniaow commented 5 years ago

What you want is actually proper HighDPI support.

Essentially, that is support for monitors where the pixel count is so high that it does not make sense anymore to match generated pixels with the host platform pixels and some form of scaling must be implemented.

2x, 3x versions are a stop gap solution since monitors resolution keeps increasing and it is probably better to implement generic scaling instead like many other emulators do. WinUAE (Amiga emulator) implements integer scaling which allows to keep the same amount of host platform pixels per emulated pixels even if that is just an approximation of the Amiga original pixel format (they are not square).

Hqx is just one particular way to implement scaling (and frankly I am not a fan since it does not properly represent the original platform video output) but it is not strictly necessary for the result you want.

Just implementing integer scaling would be fine as an early step.

Note that @ThomHarte (of CLK fame) did go with non-integer scaling and that it does work quite well, but he uses a very different method to generate the actual video output.

TotoShampoin commented 5 years ago

@nekoniaow An integet scaling is actually the best idea :o