MCPcopy Create free account
hub / github.com/crosire/reshade / ReShadeUnregisterEventForAddon

Function ReShadeUnregisterEventForAddon

source/addon_manager.cpp:594–618  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

592 ReShadeUnregisterEventForAddon(nullptr, ev, callback);
593}
594void ReShadeUnregisterEventForAddon(void *module, reshade::addon_event ev, void *callback)
595{
596 if (ev >= reshade::addon_event::max)
597 return;
598
599 reshade::addon_info *const info = reshade::find_addon(module != nullptr ? module : callback);
600 if (info == nullptr)
601 return; // Do not log an error here, since this may be called if an add-on failed to load
602
603 assert(info->handle == module || module == nullptr);
604
605#if RESHADE_ADDON == 1
606 if (info->handle != g_module_handle && (ev > reshade::addon_event::destroy_effect_runtime && ev < reshade::addon_event::present))
607 return;
608#endif
609
610 std::vector<void *> &event_list = reshade::addon_event_list[static_cast<uint32_t>(ev)];
611 event_list.erase(std::remove(event_list.begin(), event_list.end(), callback), event_list.end());
612
613 info->event_callbacks.erase(std::remove(info->event_callbacks.begin(), info->event_callbacks.end(), std::make_pair(static_cast<uint32_t>(ev), callback)), info->event_callbacks.end());
614
615#if RESHADE_VERBOSE_LOG
616 reshade::log::message(reshade::log::level::debug, "Unregistered event callback %p for event %s.", callback, addon_event_to_string(ev));
617#endif
618}
619
620#if RESHADE_GUI
621

Callers 1

ReShadeUnregisterEventFunction · 0.85

Calls 3

messageFunction · 0.85
addon_event_to_stringFunction · 0.85
eraseMethod · 0.45

Tested by

no test coverage detected