diff --git a/src/video/sdl2_default_v.cpp b/src/video/sdl2_default_v.cpp index bfd571277f..404b8c5c66 100644 --- a/src/video/sdl2_default_v.cpp +++ b/src/video/sdl2_default_v.cpp @@ -69,6 +69,7 @@ void VideoDriver_SDL_Default::MakePalette() _cur_palette.first_dirty = 0; _cur_palette.count_dirty = 256; this->local_palette = _cur_palette; + _cur_palette.count_dirty = 0; this->UpdatePalette(); if (_sdl_surface != _sdl_real_surface) { @@ -100,9 +101,9 @@ void VideoDriver_SDL_Default::Paint() { PerformanceMeasurer framerate(PFE_VIDEO); - if (IsEmptyRect(this->dirty_rect) && _cur_palette.count_dirty == 0) return; + if (IsEmptyRect(this->dirty_rect) && this->local_palette.count_dirty == 0) return; - if (_cur_palette.count_dirty != 0) { + if (this->local_palette.count_dirty != 0) { Blitter *blitter = BlitterFactory::GetCurrentBlitter(); switch (blitter->UsePaletteAnimation()) { @@ -121,7 +122,7 @@ void VideoDriver_SDL_Default::Paint() default: NOT_REACHED(); } - _cur_palette.count_dirty = 0; + this->local_palette.count_dirty = 0; } SDL_Rect r = { this->dirty_rect.left, this->dirty_rect.top, this->dirty_rect.right - this->dirty_rect.left, this->dirty_rect.bottom - this->dirty_rect.top }; diff --git a/src/video/sdl2_v.cpp b/src/video/sdl2_v.cpp index 9527dc2e54..bd928b0807 100644 --- a/src/video/sdl2_v.cpp +++ b/src/video/sdl2_v.cpp @@ -257,6 +257,7 @@ void VideoDriver_SDL_Base::CheckPaletteAnim() if (_cur_palette.count_dirty == 0) return; this->local_palette = _cur_palette; + _cur_palette.count_dirty = 0; this->MakeDirty(0, 0, _screen.width, _screen.height); } diff --git a/src/video/win32_v.cpp b/src/video/win32_v.cpp index 17f86b9116..62167b1f35 100644 --- a/src/video/win32_v.cpp +++ b/src/video/win32_v.cpp @@ -818,6 +818,7 @@ void VideoDriver_Win32Base::CheckPaletteAnim() if (_cur_palette.count_dirty == 0) return; _local_palette = _cur_palette; + _cur_palette.count_dirty = 0; this->MakeDirty(0, 0, _screen.width, _screen.height); }