MCPcopy Create free account
hub / github.com/Redot-Engine/redot-engine / _try_embed_process

Method _try_embed_process

editor/run/embedded_process.cpp:247–268  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

245}
246
247void EmbeddedProcess::_try_embed_process() {
248 bool is_visible = is_visible_in_tree();
249 Error err = DisplayServer::get_singleton()->embed_process(window->get_window_id(), current_process_id, get_screen_embedded_window_rect(), is_visible, is_visible && application_has_focus && embedding_grab_focus);
250 if (err == OK) {
251 embedding_completed = true;
252 queue_redraw();
253 emit_signal(SNAME("embedding_completed"));
254 } else if (err == ERR_DOES_NOT_EXIST) {
255 if (OS::get_singleton()->get_ticks_msec() - start_embedding_time >= (uint64_t)embedding_timeout) {
256 // Embedding process timed out.
257 reset();
258 emit_signal(SNAME("embedding_failed"));
259 } else {
260 // Tries another shot.
261 timer_embedding->start();
262 }
263 } else {
264 // Another unknown error.
265 reset();
266 emit_signal(SNAME("embedding_failed"));
267 }
268}
269
270bool EmbeddedProcess::_is_embedded_process_updatable() {
271 return window && current_process_id != 0 && embedding_completed;

Callers

nothing calls this directly

Calls 5

resetFunction · 0.85
embed_processMethod · 0.45
get_window_idMethod · 0.45
get_ticks_msecMethod · 0.45
startMethod · 0.45

Tested by

no test coverage detected