mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-08-25 15:39:09 +00:00
Fix: [OpenGL] Main loop expects to start with the video buffer unmapped. (#9100)
This commit is contained in:
@@ -1154,6 +1154,7 @@ void *OpenGLBackend::GetVideoBuffer()
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (!this->persistent_mapping_supported) {
|
if (!this->persistent_mapping_supported) {
|
||||||
|
assert(this->vid_buffer == nullptr);
|
||||||
_glBindBuffer(GL_PIXEL_UNPACK_BUFFER, this->vid_pbo);
|
_glBindBuffer(GL_PIXEL_UNPACK_BUFFER, this->vid_pbo);
|
||||||
this->vid_buffer = _glMapBuffer(GL_PIXEL_UNPACK_BUFFER, GL_READ_WRITE);
|
this->vid_buffer = _glMapBuffer(GL_PIXEL_UNPACK_BUFFER, GL_READ_WRITE);
|
||||||
} else if (this->vid_buffer == nullptr) {
|
} else if (this->vid_buffer == nullptr) {
|
||||||
|
@@ -74,6 +74,8 @@ const char *VideoDriver_SDL_OpenGL::Start(const StringList ¶m)
|
|||||||
this->Stop();
|
this->Stop();
|
||||||
return "Can't get pointer to screen buffer";
|
return "Can't get pointer to screen buffer";
|
||||||
}
|
}
|
||||||
|
/* Main loop expects to start with the buffer unmapped. */
|
||||||
|
this->ReleaseVideoPointer();
|
||||||
|
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
@@ -1311,6 +1311,8 @@ const char *VideoDriver_Win32OpenGL::Start(const StringList ¶m)
|
|||||||
_cur_resolution = old_res;
|
_cur_resolution = old_res;
|
||||||
return "Can't get pointer to screen buffer";
|
return "Can't get pointer to screen buffer";
|
||||||
}
|
}
|
||||||
|
/* Main loop expects to start with the buffer unmapped. */
|
||||||
|
this->ReleaseVideoPointer();
|
||||||
|
|
||||||
MarkWholeScreenDirty();
|
MarkWholeScreenDirty();
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user