diff options
author | rubidium <rubidium@openttd.org> | 2011-12-08 19:37:33 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2011-12-08 19:37:33 +0000 |
commit | 61625e53c96572528745b79a63ba614b74c8f301 (patch) | |
tree | f748a6f1eb557f7466346597b167607d1ae75413 /src/video/allegro_v.cpp | |
parent | 8630e97b4f0d078ca492944f383790979b85f8c1 (diff) | |
download | openttd-61625e53c96572528745b79a63ba614b74c8f301.tar.xz |
(svn r23448) -Fix: keep a local copy of the palette in the 32bpp animated blitter so changes of the palette data during the game don't influence drawing (with SDL)
Diffstat (limited to 'src/video/allegro_v.cpp')
-rw-r--r-- | src/video/allegro_v.cpp | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/src/video/allegro_v.cpp b/src/video/allegro_v.cpp index 7f8b4304c..a8d45b739 100644 --- a/src/video/allegro_v.cpp +++ b/src/video/allegro_v.cpp @@ -100,7 +100,7 @@ static void CheckPaletteAnim() break; case Blitter::PALETTE_ANIMATION_BLITTER: - blitter->PaletteAnimate(_cur_palette.first_dirty, _cur_palette.count_dirty); + blitter->PaletteAnimate(_cur_palette); break; case Blitter::PALETTE_ANIMATION_NONE: @@ -487,7 +487,8 @@ void VideoDriver_Allegro::MainLoop() uint32 cur_ticks = GetTime(); uint32 last_cur_ticks = cur_ticks; uint32 next_tick = cur_ticks + MILLISECONDS_PER_TICK; - uint32 pal_tick = 0; + + CheckPaletteAnim(); for (;;) { uint32 prev_cur_ticks = cur_ticks; // to check for wrapping @@ -532,10 +533,7 @@ void VideoDriver_Allegro::MainLoop() GameLoop(); UpdateWindows(); - if (++pal_tick > 4) { - CheckPaletteAnim(); - pal_tick = 1; - } + CheckPaletteAnim(); DrawSurfaceToScreen(); } else { CSleep(1); |