mirror of https://github.com/OpenTTD/OpenTTD
Fix: [OpenGL] Main loop expects to start with the video buffer unmapped. (#9100)
parent
037bd14ed8
commit
967c2ed56c
|
@ -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();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue