diff options
Diffstat (limited to 'src/video/win32_v.cpp')
-rw-r--r-- | src/video/win32_v.cpp | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/src/video/win32_v.cpp b/src/video/win32_v.cpp index 894d1e05d..8030380ce 100644 --- a/src/video/win32_v.cpp +++ b/src/video/win32_v.cpp @@ -864,12 +864,16 @@ bool VideoDriver_Win32Base::PollEvent() void VideoDriver_Win32Base::MainLoop() { + this->StartGameThread(); + for (;;) { if (_exit_game) break; this->Tick(); this->SleepTillNextTick(); } + + this->StopGameThread(); } void VideoDriver_Win32Base::ClientSizeChanged(int w, int h, bool force) @@ -995,6 +999,8 @@ const char *VideoDriver_Win32GDI::Start(const StringList ¶m) MarkWholeScreenDirty(); + this->is_game_threaded = !GetDriverParamBool(param, "no_threads") && !GetDriverParamBool(param, "no_thread"); + return nullptr; } @@ -1115,13 +1121,7 @@ void VideoDriver_Win32GDI::Paint() break; case Blitter::PALETTE_ANIMATION_BLITTER: { - bool need_buf = _screen.dst_ptr == nullptr; - if (need_buf) _screen.dst_ptr = this->GetVideoPointer(); blitter->PaletteAnimate(_local_palette); - if (need_buf) { - this->ReleaseVideoPointer(); - _screen.dst_ptr = nullptr; - } break; } @@ -1291,6 +1291,8 @@ const char *VideoDriver_Win32OpenGL::Start(const StringList ¶m) MarkWholeScreenDirty(); + this->is_game_threaded = !GetDriverParamBool(param, "no_threads") && !GetDriverParamBool(param, "no_thread"); + return nullptr; } @@ -1371,6 +1373,11 @@ bool VideoDriver_Win32OpenGL::AfterBlitterChange() return true; } +void VideoDriver_Win32OpenGL::PopulateSystemSprites() +{ + OpenGLBackend::Get()->PopulateCursorCache(); +} + void VideoDriver_Win32OpenGL::ClearSystemSprites() { OpenGLBackend::Get()->ClearCursorCache(); |