mirror of https://github.com/OpenTTD/OpenTTD
Fix #8808: [OSX, OpenGL] Crash on switching blitters due to double-mapping the video buffer.
parent
ae1f7bd695
commit
25656a10cb
|
@ -265,7 +265,7 @@ void VideoDriver_CocoaOpenGL::AllocateBackingStore(bool force)
|
||||||
CGLSetCurrentContext(this->gl_context);
|
CGLSetCurrentContext(this->gl_context);
|
||||||
NSRect frame = [ this->cocoaview getRealRect:[ this->cocoaview frame ] ];
|
NSRect frame = [ this->cocoaview getRealRect:[ this->cocoaview frame ] ];
|
||||||
OpenGLBackend::Get()->Resize(frame.size.width, frame.size.height, force);
|
OpenGLBackend::Get()->Resize(frame.size.width, frame.size.height, force);
|
||||||
_screen.dst_ptr = this->GetVideoPointer();
|
if (this->buffer_locked) _screen.dst_ptr = this->GetVideoPointer();
|
||||||
this->dirty_rect = {};
|
this->dirty_rect = {};
|
||||||
|
|
||||||
/* Redraw screen */
|
/* Redraw screen */
|
||||||
|
|
|
@ -213,7 +213,7 @@ bool VideoDriver_Cocoa::ToggleFullscreen(bool full_screen)
|
||||||
*/
|
*/
|
||||||
bool VideoDriver_Cocoa::AfterBlitterChange()
|
bool VideoDriver_Cocoa::AfterBlitterChange()
|
||||||
{
|
{
|
||||||
this->ChangeResolution(_cur_resolution.width, _cur_resolution.height);
|
this->AllocateBackingStore(true);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -224,7 +224,7 @@ void VideoDriver_Cocoa::EditBoxLostFocus()
|
||||||
{
|
{
|
||||||
[ [ this->cocoaview inputContext ] discardMarkedText ];
|
[ [ this->cocoaview inputContext ] discardMarkedText ];
|
||||||
/* Clear any marked string from the current edit box. */
|
/* Clear any marked string from the current edit box. */
|
||||||
HandleTextInput(NULL, true);
|
HandleTextInput(nullptr, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -700,9 +700,9 @@ void CocoaDialog(const char *title, const char *message, const char *buttonLabel
|
||||||
if (!EditBoxInGlobalFocus() || IsInsideMM(pressed_key & ~WKC_SPECIAL_KEYS, WKC_F1, WKC_PAUSE + 1)) {
|
if (!EditBoxInGlobalFocus() || IsInsideMM(pressed_key & ~WKC_SPECIAL_KEYS, WKC_F1, WKC_PAUSE + 1)) {
|
||||||
HandleKeypress(pressed_key, unicode);
|
HandleKeypress(pressed_key, unicode);
|
||||||
}
|
}
|
||||||
DEBUG(driver, 2, "cocoa_v: QZ_KeyEvent: %x (%x), down, mapping: %x", keycode, unicode, pressed_key);
|
DEBUG(driver, 3, "cocoa_v: QZ_KeyEvent: %x (%x), down, mapping: %x", keycode, unicode, pressed_key);
|
||||||
} else {
|
} else {
|
||||||
DEBUG(driver, 2, "cocoa_v: QZ_KeyEvent: %x (%x), up", keycode, unicode);
|
DEBUG(driver, 3, "cocoa_v: QZ_KeyEvent: %x (%x), up", keycode, unicode);
|
||||||
}
|
}
|
||||||
|
|
||||||
return interpret_keys;
|
return interpret_keys;
|
||||||
|
|
Loading…
Reference in New Issue