1
0
mirror of https://github.com/TerryCavanagh/VVVVVV.git synced 2024-06-24 05:28:30 +02:00

Interpolate scrolling in Analogue Mode filter

I can't really make the filter update only every timestep, because it's
per-pixel and operates on deltaframes too, so it TECHNICALLY runs faster
in over-30-FPS mode than not. That said, it's not really noticeable, the
filter doesn't look bad for updating more often or anything. However, I
can at least interpolate the scrolling, so it's smooth in over-30-FPS
mode.
This commit is contained in:
Misa 2020-11-07 16:21:30 -08:00 committed by Ethan Lee
parent 65a5dbe3a3
commit 1a2dd787f3

View File

@ -316,6 +316,7 @@ void BlitSurfaceTinted(
}
int oldscrollamount = 0;
int scrollamount = 0;
bool isscrolling = 0;
@ -326,12 +327,14 @@ void UpdateFilter()
isscrolling = true;
}
oldscrollamount = scrollamount;
if(isscrolling == true)
{
scrollamount += 20;
if(scrollamount > 240)
{
scrollamount = 0;
oldscrollamount = 0;
isscrolling = false;
}
}
@ -348,7 +351,7 @@ SDL_Surface* ApplyFilter( SDL_Surface* _src )
{
for(int y = 0; y < _src->h; y++)
{
int sampley = (y + scrollamount )% 240;
int sampley = (y + (int) graphics.lerp(oldscrollamount, scrollamount) )% 240;
Uint32 pixel = ReadPixel(_src, x,sampley);