mirror of
https://github.com/TerryCavanagh/VVVVVV.git
synced 2024-12-23 18:19:43 +01:00
Interpolate horizontal warp BG
So that it's really, really smooth. Only noticeable in slowdown mode, though.
This commit is contained in:
parent
c9c55d0c8b
commit
c7d3a684ea
3 changed files with 7 additions and 1 deletions
|
@ -111,6 +111,7 @@ void Graphics::init()
|
||||||
tempBuffer = NULL;
|
tempBuffer = NULL;
|
||||||
tl = point();
|
tl = point();
|
||||||
towerbuffer = NULL;
|
towerbuffer = NULL;
|
||||||
|
towerbuffer_lerp = NULL;
|
||||||
trinketr = 0;
|
trinketr = 0;
|
||||||
trinketg = 0;
|
trinketg = 0;
|
||||||
trinketb = 0;
|
trinketb = 0;
|
||||||
|
@ -1957,7 +1958,9 @@ void Graphics::drawbackground( int t )
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 3: //Warp zone (horizontal)
|
case 3: //Warp zone (horizontal)
|
||||||
BlitSurfaceStandard(towerbuffer, NULL, backBuffer, NULL);
|
BlitSurfaceStandard(towerbuffer, NULL, towerbuffer_lerp, NULL);
|
||||||
|
ScrollSurface(towerbuffer_lerp, lerp(0, -3), 0);
|
||||||
|
BlitSurfaceStandard(towerbuffer_lerp, NULL, backBuffer, NULL);
|
||||||
break;
|
break;
|
||||||
case 4: //Warp zone (vertical)
|
case 4: //Warp zone (vertical)
|
||||||
backoffset+=3;
|
backoffset+=3;
|
||||||
|
|
|
@ -233,6 +233,7 @@ public:
|
||||||
Screen* screenbuffer;
|
Screen* screenbuffer;
|
||||||
SDL_Surface* menubuffer;
|
SDL_Surface* menubuffer;
|
||||||
SDL_Surface* towerbuffer;
|
SDL_Surface* towerbuffer;
|
||||||
|
SDL_Surface* towerbuffer_lerp;
|
||||||
SDL_Surface* foregroundBuffer;
|
SDL_Surface* foregroundBuffer;
|
||||||
SDL_Surface* tempBuffer;
|
SDL_Surface* tempBuffer;
|
||||||
|
|
||||||
|
|
|
@ -193,6 +193,8 @@ int main(int argc, char *argv[])
|
||||||
|
|
||||||
graphics.towerbuffer = SDL_CreateRGBSurface(SDL_SWSURFACE ,320 ,240 ,fmt->BitsPerPixel,fmt->Rmask,fmt->Gmask,fmt->Bmask,fmt->Amask );
|
graphics.towerbuffer = SDL_CreateRGBSurface(SDL_SWSURFACE ,320 ,240 ,fmt->BitsPerPixel,fmt->Rmask,fmt->Gmask,fmt->Bmask,fmt->Amask );
|
||||||
SDL_SetSurfaceBlendMode(graphics.towerbuffer, SDL_BLENDMODE_NONE);
|
SDL_SetSurfaceBlendMode(graphics.towerbuffer, SDL_BLENDMODE_NONE);
|
||||||
|
graphics.towerbuffer_lerp = SDL_CreateRGBSurface(SDL_SWSURFACE, 320, 240, fmt->BitsPerPixel, fmt->Rmask, fmt->Gmask, fmt->Bmask, fmt->Amask);
|
||||||
|
SDL_SetSurfaceBlendMode(graphics.towerbuffer, SDL_BLENDMODE_NONE);
|
||||||
|
|
||||||
graphics.tempBuffer = SDL_CreateRGBSurface(SDL_SWSURFACE ,320 ,240 ,fmt->BitsPerPixel,fmt->Rmask,fmt->Gmask,fmt->Bmask,fmt->Amask );
|
graphics.tempBuffer = SDL_CreateRGBSurface(SDL_SWSURFACE ,320 ,240 ,fmt->BitsPerPixel,fmt->Rmask,fmt->Gmask,fmt->Bmask,fmt->Amask );
|
||||||
SDL_SetSurfaceBlendMode(graphics.tempBuffer, SDL_BLENDMODE_NONE);
|
SDL_SetSurfaceBlendMode(graphics.tempBuffer, SDL_BLENDMODE_NONE);
|
||||||
|
|
Loading…
Reference in a new issue