app :: App :: set_active
private fun set_active
do
assert not destroyed
if window_created and resumed and focused and not active then
var display = display
if display == null then
# Initial create
create_display
create_gamnit
display = self.display
else
# Try to reuse the EGL context
var native_window = app.native_app_glue.window
assert not native_window.address_is_null
var needs_recreate = display.check_egl_context(native_window)
if needs_recreate then
# Skip frame
if display.native_window_is_invalid then
print_error "the native window is invalid, skip frame"
return
end
# The context was lost, reload everything
create_gamnit
recreate_gamnit
end
end
# Update screen dimensions
assert display != null
display.update_size
app.on_resize display
if not scene_created then
# Initial launch
if debug_gamnit then print "set_active: create"
create_scene
scene_created = true
on_restore_state
else
# Next to first launch, reload
if debug_gamnit then print "set_active: recreate"
end
active = true
end
end
lib/gamnit/gamnit_android.nit:164,2--211,4