Skip to content

Commit

Permalink
sokol-app emscripten: link WebGL context lost/restored to suspend/res…
Browse files Browse the repository at this point in the history
…ume events
  • Loading branch information
floooh committed Jul 19, 2018
1 parent e4f8907 commit 6bd8234
Showing 1 changed file with 16 additions and 0 deletions.
16 changes: 16 additions & 0 deletions sokol_app.h
Original file line number Diff line number Diff line change
Expand Up @@ -1654,6 +1654,20 @@ _SOKOL_PRIVATE void _sapp_emsc_frame(void) {
_sapp_frame();
}

_SOKOL_PRIVATE EM_BOOL _sapp_emsc_context_cb(int emsc_type, const void* reserved, void* user_data) {
sapp_event_type type;
switch (emsc_type) {
case EMSCRIPTEN_EVENT_WEBGLCONTEXTLOST: type = SAPP_EVENTTYPE_SUSPENDED; break;
case EMSCRIPTEN_EVENT_WEBGLCONTEXTRESTORED: type = SAPP_EVENTTYPE_RESUMED; break;
default: type = SAPP_EVENTTYPE_INVALID; break;
}
if (_sapp_events_enabled() && (SAPP_EVENTTYPE_INVALID != type)) {
_sapp_init_event(type);
_sapp.desc.event_cb(&_sapp.event);
}
return true;
}

_SOKOL_PRIVATE EM_BOOL _sapp_emsc_mouse_cb(int emsc_type, const EmscriptenMouseEvent* emsc_event, void* user_data) {
_sapp.mouse_x = (emsc_event->canvasX * _sapp.dpi_scale);
_sapp.mouse_y = (emsc_event->canvasY * _sapp.dpi_scale);
Expand Down Expand Up @@ -2001,6 +2015,8 @@ int main(int argc, char* argv[]) {
emscripten_set_touchmove_callback(_sapp.html5_canvas_name, 0, true, _sapp_emsc_touch_cb);
emscripten_set_touchend_callback(_sapp.html5_canvas_name, 0, true, _sapp_emsc_touch_cb);
emscripten_set_touchcancel_callback(_sapp.html5_canvas_name, 0, true, _sapp_emsc_touch_cb);
emscripten_set_webglcontextlost_callback(_sapp.html5_canvas_name, 0, true, _sapp_emsc_context_cb);
emscripten_set_webglcontextrestored_callback(_sapp.html5_canvas_name, 0, true, _sapp_emsc_context_cb);
emscripten_set_main_loop(_sapp_emsc_frame, 0, 1);
return 0;
}
Expand Down

0 comments on commit 6bd8234

Please sign in to comment.