summaryrefslogtreecommitdiff
path: root/sokol_app.h
diff options
context:
space:
mode:
authorAndre Weissflog <floooh@gmail.com>2019-08-29 15:54:04 +0200
committerAndre Weissflog <floooh@gmail.com>2019-08-29 15:54:04 +0200
commit4d9c0837da78e35ed7d51bd0ba4e67189aa271b9 (patch)
tree8d97334a21bd2c26bc6974e5c3e05a835c0e89c8 /sokol_app.h
parentb688f5be3d131af15c31ca2277ba8560013a9a76 (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.h29
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];