[uae] Opengl bilinear filter for e-uae e-uae-0.8.29-WIP4

  • From: Mark Lenders <kokoko3k@xxxxxxxxx>
  • To: uae@xxxxxxxxxxxxx
  • Date: Thu, 14 Jan 2010 16:34:10 +0100

Hi all,
Winuae had bilinear (and trilinear, mostly useless) filter for ages,
so i made some little modifications to e-uae code to make e-uae draw linear
smoothed images when using sdl_gl modes.
I'm not a c programmer nor an opengl one,  but e-uae code is so easy
to understand... :-)

To use the new mode, you have to:
* set sdl.use_gl=true
* set gfx_gl_smoothing=true
* set gfx_vsync=true
The last one has to be fixed, i don't know why it is needed,
but having vsync off puts a lot of garbage on screen.

Other configuration file options i added are:
*gfx_gl_x_offset = (+/- integer)
    Pan image horizontally
*gfx_gl_y_offset= (+/- integer)
    Pan image vertically
*gfx_gl_panscan= (+/- integer)
    Zoom in/out

Added hotkeys to pan image:
  F12+{g,h,j,y} = Pan left,down,right,up,
  F12+{t,u} = ZoomIn, ZoomOut
...as you use those hotkeys, option=value pairs are
shown on console so that you can copy them back in ~.uaerc
when/if you find optimal values.

Leds are now drawed just under the amiga screen on the left
and will stay in place when you pan image left/right.
instead, they will follow the image if you pan up/down or zoom.

Keep in mind that i tested the code on Linux x86 only,
it is very likely that whis won't work on osx, but i can't be sure.
Also i can't say what happens if a picasso96 mode is used.

Remember that sdl backend uses gfx_width_windowed and gfx_height_windowed
for windowed and fullscreen mode too.

Changelog:
        * src/gfx-sdl/sdlgfx.c: GL_LINEAR and mapping/zooming routines
        * src/cfgfile.c:
        * src/include/options.h:
          new configuration file options:
          gfx_gl_x_offset  (pan/center image)
          gfx_gl_y_offset  (pan/center image)
          gfx_gl_panscan   (zoom in/out image)
          gfx_gl_smoothing (switch linear smoothing mode)
        * src/include/keyboard.h:
        * src/inputdevice.c:
        * src/sdlkeys.c:
        * src/inputevents.c:
          added hotkeys to pan image:
          F12+{g,h,j,y} = Pan left,down,right,up,
          F12+{t,u} = ZoomIn, ZoomOut
        * src/drawing.c:
          Draw on screen leds just under the amiga image.
          Make their position static if user pans left/right.


Here:

http://wpage.unina.it/aorefice/e-uae-0.8.29-WIP4-bilinear.tar.gz

you'll find a big archive containing source code, object files and
a precompiled binary for linux x86.

Have Fun!

Other related posts: