(svn r18709) -Fix (r10227,FS#3464): Animation buffer for 32bpp-anim blitter was only validated during sprite blitting, other drawing operations didn't check it. Initial startup and window resize could therefore lead to crash.
This commit is contained in:
@@ -221,6 +221,8 @@ static bool CreateMainSurface(uint w, uint h)
|
||||
_cursor.pos.x = mouse_x;
|
||||
_cursor.pos.y = mouse_y;
|
||||
|
||||
BlitterFactoryBase::GetCurrentBlitter()->PostResize();
|
||||
|
||||
InitPalette();
|
||||
|
||||
char caption[32];
|
||||
|
@@ -197,6 +197,8 @@ void QZ_GameSizeChanged()
|
||||
_screen.dst_ptr = _cocoa_subdriver->GetPixelBuffer();
|
||||
_fullscreen = _cocoa_subdriver->IsFullscreen();
|
||||
|
||||
BlitterFactoryBase::GetCurrentBlitter()->PostResize();
|
||||
|
||||
GameSizeChanged();
|
||||
}
|
||||
|
||||
|
@@ -251,6 +251,9 @@ static bool CreateMainSurface(uint w, uint h)
|
||||
_screen.pitch = newscreen->pitch / (bpp / 8);
|
||||
_screen.dst_ptr = newscreen->pixels;
|
||||
_sdl_screen = newscreen;
|
||||
|
||||
BlitterFactoryBase::GetCurrentBlitter()->PostResize();
|
||||
|
||||
InitPalette();
|
||||
|
||||
snprintf(caption, sizeof(caption), "OpenTTD %s", _openttd_revision);
|
||||
|
@@ -160,6 +160,9 @@ static void ClientSizeChanged(int w, int h)
|
||||
/* mark all palette colors dirty */
|
||||
_pal_first_dirty = 0;
|
||||
_pal_count_dirty = 256;
|
||||
|
||||
BlitterFactoryBase::GetCurrentBlitter()->PostResize();
|
||||
|
||||
GameSizeChanged();
|
||||
|
||||
/* redraw screen */
|
||||
@@ -302,6 +305,9 @@ static bool MakeWindow(bool full_screen)
|
||||
ShowWindow(_wnd.main_wnd, showstyle);
|
||||
}
|
||||
}
|
||||
|
||||
BlitterFactoryBase::GetCurrentBlitter()->PostResize();
|
||||
|
||||
GameSizeChanged(); // invalidate all windows, force redraw
|
||||
return true; // the request succedded
|
||||
}
|
||||
|
Reference in New Issue
Block a user