diff --git a/scene/resources/compositor.cpp b/scene/resources/compositor.cpp index 60b7ed0563fa..d9fdb93c5d32 100644 --- a/scene/resources/compositor.cpp +++ b/scene/resources/compositor.cpp @@ -85,6 +85,10 @@ void CompositorEffect::_validate_property(PropertyInfo &p_property) const { } } +void CompositorEffect::_call_render_callback(int p_effect_callback_type, const RenderData *p_render_data) { + GDVIRTUAL_CALL(_render_callback, p_effect_callback_type, p_render_data); +} + void CompositorEffect::set_enabled(bool p_enabled) { enabled = p_enabled; if (rid.is_valid()) { @@ -105,7 +109,7 @@ void CompositorEffect::set_effect_callback_type(EffectCallbackType p_callback_ty if (rid.is_valid()) { RenderingServer *rs = RenderingServer::get_singleton(); ERR_FAIL_NULL(rs); - rs->compositor_effect_set_callback(rid, RenderingServer::CompositorEffectCallbackType(effect_callback_type), Callable(this, "_render_callback")); + rs->compositor_effect_set_callback(rid, RenderingServer::CompositorEffectCallbackType(effect_callback_type), callable_mp(this, &CompositorEffect::_call_render_callback)); } } diff --git a/scene/resources/compositor.h b/scene/resources/compositor.h index ff840c88789f..e7d56878df94 100644 --- a/scene/resources/compositor.h +++ b/scene/resources/compositor.h @@ -65,6 +65,8 @@ class CompositorEffect : public Resource { static void _bind_methods(); void _validate_property(PropertyInfo &p_property) const; + void _call_render_callback(int p_effect_callback_type, const RenderData *p_render_data); + GDVIRTUAL2(_render_callback, int, const RenderData *) public: