diff options
| author | Andre Weissflog <floooh@gmail.com> | 2019-08-29 15:54:04 +0200 |
|---|---|---|
| committer | Andre Weissflog <floooh@gmail.com> | 2019-08-29 15:54:04 +0200 |
| commit | 4d9c0837da78e35ed7d51bd0ba4e67189aa271b9 (patch) | |
| tree | 8d97334a21bd2c26bc6974e5c3e05a835c0e89c8 /sokol_app.h | |
| parent | b688f5be3d131af15c31ca2277ba8560013a9a76 (diff) | |
sokol_app.h macOS fixes:
- NSOpenGLView default for "wants best resolution" has changed to
YES, so explicitly set to NO if sokol-app doesn't want HighDPI
- fix cleanup being multiple times with "soft quit" and events
being generated after cleanup callback has been called.
Diffstat (limited to 'sokol_app.h')
| -rw-r--r-- | sokol_app.h | 29 |
1 files changed, 18 insertions, 11 deletions
diff --git a/sokol_app.h b/sokol_app.h index 69086c68..d196c1dc 100644 --- a/sokol_app.h +++ b/sokol_app.h @@ -976,21 +976,25 @@ _SOKOL_PRIVATE void _sapp_call_frame(void) { } _SOKOL_PRIVATE void _sapp_call_cleanup(void) { - if (_sapp.desc.cleanup_cb) { - _sapp.desc.cleanup_cb(); - } - else if (_sapp.desc.cleanup_userdata_cb) { - _sapp.desc.cleanup_userdata_cb(_sapp.desc.user_data); + if (!_sapp.cleanup_called) { + if (_sapp.desc.cleanup_cb) { + _sapp.desc.cleanup_cb(); + } + else if (_sapp.desc.cleanup_userdata_cb) { + _sapp.desc.cleanup_userdata_cb(_sapp.desc.user_data); + } + _sapp.cleanup_called = true; } - _sapp.cleanup_called = true; } _SOKOL_PRIVATE void _sapp_call_event(const sapp_event* e) { - if (_sapp.desc.event_cb) { - _sapp.desc.event_cb(e); - } - else if (_sapp.desc.event_userdata_cb) { - _sapp.desc.event_userdata_cb(e, _sapp.desc.user_data); + if (!_sapp.cleanup_called) { + if (_sapp.desc.event_cb) { + _sapp.desc.event_cb(e); + } + else if (_sapp.desc.event_userdata_cb) { + _sapp.desc.event_userdata_cb(e, _sapp.desc.user_data); + } } } @@ -1361,6 +1365,9 @@ _SOKOL_PRIVATE void _sapp_macos_frame(void) { if (_sapp.desc.high_dpi) { [_sapp_view_obj setWantsBestResolutionOpenGLSurface:YES]; } + else { + [_sapp_view_obj setWantsBestResolutionOpenGLSurface:NO]; + } _sapp_macos_window_obj.contentView = _sapp_view_obj; [_sapp_macos_window_obj makeFirstResponder:_sapp_view_obj]; |