diff options
author | peter1138 <peter1138@openttd.org> | 2010-01-04 02:32:36 +0000 |
---|---|---|
committer | peter1138 <peter1138@openttd.org> | 2010-01-04 02:32:36 +0000 |
commit | abb147d9742f349513d076a76b2957eb573d78e7 (patch) | |
tree | 57b0ff251d966e055785a8e289aacc6431540af4 /src/video | |
parent | 5ab64809fe72c38d373bdbed6ffa9b6660dd69d6 (diff) | |
download | openttd-abb147d9742f349513d076a76b2957eb573d78e7.tar.xz |
(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.
Diffstat (limited to 'src/video')
-rw-r--r-- | src/video/allegro_v.cpp | 2 | ||||
-rw-r--r-- | src/video/cocoa/cocoa_v.mm | 2 | ||||
-rw-r--r-- | src/video/sdl_v.cpp | 3 | ||||
-rw-r--r-- | src/video/win32_v.cpp | 6 |
4 files changed, 13 insertions, 0 deletions
diff --git a/src/video/allegro_v.cpp b/src/video/allegro_v.cpp index d1717f9b1..dac11071e 100644 --- a/src/video/allegro_v.cpp +++ b/src/video/allegro_v.cpp @@ -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]; diff --git a/src/video/cocoa/cocoa_v.mm b/src/video/cocoa/cocoa_v.mm index 0a0834686..7589420b0 100644 --- a/src/video/cocoa/cocoa_v.mm +++ b/src/video/cocoa/cocoa_v.mm @@ -197,6 +197,8 @@ void QZ_GameSizeChanged() _screen.dst_ptr = _cocoa_subdriver->GetPixelBuffer(); _fullscreen = _cocoa_subdriver->IsFullscreen(); + BlitterFactoryBase::GetCurrentBlitter()->PostResize(); + GameSizeChanged(); } diff --git a/src/video/sdl_v.cpp b/src/video/sdl_v.cpp index 7c39bdba0..3168cf3e8 100644 --- a/src/video/sdl_v.cpp +++ b/src/video/sdl_v.cpp @@ -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); diff --git a/src/video/win32_v.cpp b/src/video/win32_v.cpp index 57108f355..15dc4c7eb 100644 --- a/src/video/win32_v.cpp +++ b/src/video/win32_v.cpp @@ -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 } |