(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:
peter1138
2010-01-04 02:32:36 +00:00
parent 5ab64809fe
commit abb147d974
7 changed files with 30 additions and 8 deletions

View File

@@ -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];

View File

@@ -197,6 +197,8 @@ void QZ_GameSizeChanged()
_screen.dst_ptr = _cocoa_subdriver->GetPixelBuffer();
_fullscreen = _cocoa_subdriver->IsFullscreen();
BlitterFactoryBase::GetCurrentBlitter()->PostResize();
GameSizeChanged();
}

View File

@@ -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);

View File

@@ -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
}