Skip to content

Commit

Permalink
Codechange: be consistent in what CheckPaletteAnim() does and when it…
Browse files Browse the repository at this point in the history
… is called

Additionally, make sure this is a class method. Later commits
will make use of this.
  • Loading branch information
TrueBrain committed Feb 20, 2021
1 parent 790fa71 commit ec1dd0b
Show file tree
Hide file tree
Showing 10 changed files with 16 additions and 17 deletions.
6 changes: 2 additions & 4 deletions src/video/allegro_v.cpp
Expand Up @@ -95,7 +95,7 @@ static void InitPalette()
UpdatePalette(0, 256);
}

static void CheckPaletteAnim()
void VideoDriver_Allegro::CheckPaletteAnim()
{
if (_cur_palette.count_dirty != 0) {
Blitter *blitter = BlitterFactory::GetCurrentBlitter();
Expand Down Expand Up @@ -484,8 +484,6 @@ void VideoDriver_Allegro::MainLoop()
auto next_game_tick = cur_ticks;
auto next_draw_tick = cur_ticks;

CheckPaletteAnim();

for (;;) {
InteractiveRandom(); // randomness

Expand Down Expand Up @@ -522,7 +520,7 @@ void VideoDriver_Allegro::MainLoop()
this->InputLoop();
::InputLoop();
UpdateWindows();
CheckPaletteAnim();
this->CheckPaletteAnim();

this->Paint();
}
Expand Down
1 change: 1 addition & 0 deletions src/video/allegro_v.h
Expand Up @@ -36,6 +36,7 @@ class VideoDriver_Allegro : public VideoDriver {
protected:
void InputLoop() override;
void Paint() override;
void CheckPaletteAnim() override;
};

/** Factory for the allegro video driver. */
Expand Down
2 changes: 1 addition & 1 deletion src/video/cocoa/cocoa_v.h
Expand Up @@ -76,6 +76,7 @@ class VideoDriver_Cocoa : public VideoDriver {
float GetDPIScale() override;
void InputLoop() override;
void Paint() override;
void CheckPaletteAnim() override;

private:
bool PollEvent();
Expand All @@ -88,7 +89,6 @@ class VideoDriver_Cocoa : public VideoDriver {
bool MakeWindow(int width, int height);

void UpdatePalette(uint first_color, uint num_colors);
void CheckPaletteAnim();

void BlitIndexedToView32(int left, int top, int right, int bottom);
};
Expand Down
2 changes: 0 additions & 2 deletions src/video/sdl2_v.cpp
Expand Up @@ -853,8 +853,6 @@ void VideoDriver_SDL::MainLoop()
last_realtime_tick = cur_ticks;
next_game_tick = cur_ticks;

this->CheckPaletteAnim();

if (_draw_threaded) {
/* Initialise the mutex first, because that's the thing we *need*
* directly in the newly created thread. */
Expand Down
2 changes: 1 addition & 1 deletion src/video/sdl2_v.h
Expand Up @@ -48,14 +48,14 @@ class VideoDriver_SDL : public VideoDriver {
void UnlockVideoBuffer() override;
void Paint() override;
void PaintThread() override;
void CheckPaletteAnim();

private:
int PollEvent();
void LoopOnce();
void MainLoopCleanup();
bool CreateMainSurface(uint w, uint h, bool resize);
bool CreateMainWindow(uint w, uint h);
void CheckPaletteAnim();

#ifdef __EMSCRIPTEN__
/* Convert a constant pointer back to a non-constant pointer to a member function. */
Expand Down
10 changes: 4 additions & 6 deletions src/video/sdl_v.cpp
Expand Up @@ -123,8 +123,10 @@ static void InitPalette()
UpdatePalette(true);
}

static void CheckPaletteAnim()
void VideoDriver_SDL::CheckPaletteAnim()
{
_local_palette = _cur_palette;

if (_cur_palette.count_dirty != 0) {
Blitter *blitter = BlitterFactory::GetCurrentBlitter();

Expand Down Expand Up @@ -183,7 +185,6 @@ void VideoDriver_SDL::PaintThread()
_draw_signal->wait(*_draw_mutex);

while (_draw_continue) {
CheckPaletteAnim();
/* Then just draw and wait till we stop */
this->Paint();
_draw_signal->wait(lock);
Expand Down Expand Up @@ -708,8 +709,6 @@ void VideoDriver_SDL::MainLoop()
auto next_game_tick = cur_ticks;
auto next_draw_tick = cur_ticks;

CheckPaletteAnim();

std::thread draw_thread;
if (_draw_threaded) {
/* Initialise the mutex first, because that's the thing we *need*
Expand Down Expand Up @@ -781,12 +780,11 @@ void VideoDriver_SDL::MainLoop()
this->InputLoop();
::InputLoop();
UpdateWindows();
_local_palette = _cur_palette;
this->CheckPaletteAnim();

if (_draw_mutex != nullptr && !HasModalProgress()) {
_draw_signal->notify_one();
} else {
CheckPaletteAnim();
this->Paint();
}
}
Expand Down
1 change: 1 addition & 0 deletions src/video/sdl_v.h
Expand Up @@ -43,6 +43,7 @@ class VideoDriver_SDL : public VideoDriver {
void UnlockVideoBuffer() override;
void Paint() override;
void PaintThread() override;
void CheckPaletteAnim();

private:
std::unique_lock<std::recursive_mutex> draw_lock;
Expand Down
5 changes: 5 additions & 0 deletions src/video/video_driver.hpp
Expand Up @@ -184,6 +184,11 @@ class VideoDriver : public Driver {
*/
virtual void PaintThread() {}

/**
* Process any pending palette animation.
*/
virtual void CheckPaletteAnim() {}

std::chrono::steady_clock::duration GetGameInterval()
{
return std::chrono::milliseconds(MILLISECONDS_PER_TICK);
Expand Down
1 change: 0 additions & 1 deletion src/video/win32_v.cpp
Expand Up @@ -1201,7 +1201,6 @@ void VideoDriver_Win32::MainLoop()

_wnd.running = true;

CheckPaletteAnim();
for (;;) {
InteractiveRandom(); // randomness

Expand Down
3 changes: 1 addition & 2 deletions src/video/win32_v.h
Expand Up @@ -49,12 +49,11 @@ class VideoDriver_Win32 : public VideoDriver {
void UnlockVideoBuffer() override;
void Paint() override;
void PaintThread() override;
void CheckPaletteAnim() override;

private:
std::unique_lock<std::recursive_mutex> draw_lock;

void CheckPaletteAnim();

static void PaintThreadThunk(VideoDriver_Win32 *drv);
};

Expand Down

0 comments on commit ec1dd0b

Please sign in to comment.