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

Function ReShadeRegisterEventForAddon

source/addon_manager.cpp:558–589  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

556 ReShadeRegisterEventForAddon(nullptr, ev, callback);
557}
558void ReShadeRegisterEventForAddon(void *module, reshade::addon_event ev, void *callback)
559{
560 if (ev >= reshade::addon_event::max)
561 return;
562
563 reshade::addon_info *const info = reshade::find_addon(module != nullptr ? module : callback);
564 if (info == nullptr)
565 {
566 reshade::log::message(reshade::log::level::error, "Could not find associated add-on and therefore failed to register an event.");
567 return;
568 }
569
570 assert(info->handle == module || module == nullptr);
571
572#if RESHADE_ADDON == 1
573 // Block all application events when building without add-on loading support
574 if (info->handle != g_module_handle && (ev > reshade::addon_event::destroy_effect_runtime && ev < reshade::addon_event::present))
575 {
576 reshade::log::message(reshade::log::level::error, "Failed to register an event because only limited add-on functionality is available!");
577 return;
578 }
579#endif
580
581 std::vector<void *> &event_list = reshade::addon_event_list[static_cast<uint32_t>(ev)];
582 event_list.push_back(callback);
583
584 info->event_callbacks.emplace_back(static_cast<uint32_t>(ev), callback);
585
586#if RESHADE_VERBOSE_LOG
587 reshade::log::message(reshade::log::level::debug, "Registered event callback %p for event %s.", callback, addon_event_to_string(ev));
588#endif
589}
590void ReShadeUnregisterEvent(reshade::addon_event ev, void *callback)
591{
592 ReShadeUnregisterEventForAddon(nullptr, ev, callback);

Callers 1

ReShadeRegisterEventFunction · 0.85

Calls 2

messageFunction · 0.85
addon_event_to_stringFunction · 0.85

Tested by

no test coverage detected