MCPcopy Create free account
hub / github.com/defold/defold / Delete

Function Delete

engine/engine/src/engine.cpp:442–587  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

440 }
441
442 void Delete(HEngine engine)
443 {
444 {
445 ScopedExtensionParams params(engine);
446
447 dmExtension::Event event;
448 event.m_Event = EXTENSION_EVENT_ID_ENGINE_DELETE;
449 dmExtension::DispatchEvent( params, &event );
450 }
451
452 if (engine->m_MainCollection)
453 dmResource::Release(engine->m_Factory, engine->m_MainCollection);
454 dmGameObject::PostUpdate(engine->m_Register);
455
456 dmGameObject::DeleteCollections(engine->m_Register); // Delete all collections and game objects
457
458 dmHttpClient::ShutdownConnectionPool();
459
460 // Reregister the types before the rest of the contexts are deleted
461 if (engine->m_Factory && engine->m_ResourceTypeContexts.Size() > 0) {
462 dmResource::DeregisterTypes(engine->m_Factory, &engine->m_ResourceTypeContexts);
463 }
464
465 dmGameObject::ComponentTypeCreateCtx component_create_ctx;
466 SetupComponentCreateContext(engine, component_create_ctx);
467
468 dmGameObject::DestroyRegisteredComponentTypes(&component_create_ctx);
469
470 dmGameSystem::ScriptLibContext script_lib_context;
471 script_lib_context.m_Factory = engine->m_Factory;
472 script_lib_context.m_Register = engine->m_Register;
473 if (engine->m_SharedScriptContext) {
474 script_lib_context.m_LuaState = dmScript::GetLuaState(engine->m_SharedScriptContext);
475 dmGameSystem::FinalizeScriptLibs(script_lib_context);
476 dmEngine::ScriptSysEngineFinalize(script_lib_context.m_LuaState, engine);
477 } else {
478 script_lib_context.m_LuaState = dmScript::GetLuaState(engine->m_GOScriptContext);
479 dmGameSystem::FinalizeScriptLibs(script_lib_context);
480 dmEngine::ScriptSysEngineFinalize(script_lib_context.m_LuaState, engine);
481 script_lib_context.m_LuaState = dmScript::GetLuaState(engine->m_GuiScriptContext);
482 dmGameSystem::FinalizeScriptLibs(script_lib_context);
483 dmEngine::ScriptSysEngineFinalize(script_lib_context.m_LuaState, engine);
484 }
485
486 dmHttpClient::ReopenConnectionPool();
487
488 dmGameObject::DeleteRegister(engine->m_Register);
489
490 UnloadBootstrapContent(engine);
491
492 dmSound::Finalize();
493
494 dmInput::DeleteContext(engine->m_InputContext);
495
496 dmRender::DeleteRenderContext(engine->m_RenderContext, engine->m_RenderScriptContext);
497
498 if (engine->m_HidContext)
499 {

Callers 15

DiscoveryServiceNewFunction · 0.70
DiscoveryServiceDeleteFunction · 0.70
DispatchFunction · 0.70
dmEngineFinalizeFunction · 0.70
dmEngineCreateFunction · 0.70
dmEngineDestroyFunction · 0.70
LaunchFunction · 0.50
TearDownMethod · 0.50
TearDownMethod · 0.50
DeleteRenderProfileFunction · 0.50
AppInitializeProfilerFunction · 0.50
AppFinalizeProfilerFunction · 0.50

Calls 15

DispatchEventFunction · 0.85
DeleteCollectionsFunction · 0.85
ShutdownConnectionPoolFunction · 0.85
DeregisterTypesFunction · 0.85
FinalizeScriptLibsFunction · 0.85
ScriptSysEngineFinalizeFunction · 0.85
ReopenConnectionPoolFunction · 0.85
DeleteRegisterFunction · 0.85
UnloadBootstrapContentFunction · 0.85
DeleteRenderContextFunction · 0.85

Tested by 5

TearDownMethod · 0.40
TearDownMethod · 0.40
TearDownMethod · 0.40
TearDownMethod · 0.40
TEST_FFunction · 0.40