I am trying to do a very slow zoom of a static image and it's still rather jerky.
I reduced the default code a bit and it seems the main problem is the rounding in gfx_blit.
Code:
gfx_blit(input[,preserve_aspect=0,x,y,w,h,srcx,srcy,srcw,srch])
Draws input to framebuffer. preserve_aspect=-1 for no fill in pad areas
It does not say what kind of parameters gfx_blit takes and it seems it accepts floats but:
1. Reaper crashed several time while I was twiddling with the zoom knob. I think it happened when srcw or srch got accidentally too big negative value but I am not really sure. Does Reaper check the range of the input parameters?
2. It seems gfx_blit rounds all parameters to whole numbers (i.e. integers). That make sense for x,y,w,h but srcx,srcy,srcw,srch should be more precise. As far as I remember DirectX takes floats <0; 1> for these coordinates and it does not round them to whole pixels. I think Reaper should change this behaviour.