diff --git a/doc/classes/CameraFeed.xml b/doc/classes/CameraFeed.xml
index 6748fdb95bd..b2235a9e283 100644
--- a/doc/classes/CameraFeed.xml
+++ b/doc/classes/CameraFeed.xml
@@ -10,6 +10,18 @@
+
+
+
+ Called when the camera feed is activated.
+
+
+
+
+
+ Called when the camera feed is deactivated.
+
+
diff --git a/servers/camera/camera_feed.cpp b/servers/camera/camera_feed.cpp
index e93ab3a5442..18d898785c5 100644
--- a/servers/camera/camera_feed.cpp
+++ b/servers/camera/camera_feed.cpp
@@ -58,6 +58,9 @@ void CameraFeed::_bind_methods() {
ClassDB::bind_method(D_METHOD("get_formats"), &CameraFeed::get_formats);
ClassDB::bind_method(D_METHOD("set_format", "index", "parameters"), &CameraFeed::set_format);
+ GDVIRTUAL_BIND(_activate_feed);
+ GDVIRTUAL_BIND(_deactivate_feed);
+
ADD_SIGNAL(MethodInfo("frame_changed"));
ADD_SIGNAL(MethodInfo("format_changed"));
@@ -273,12 +276,13 @@ void CameraFeed::set_external(int p_width, int p_height) {
}
bool CameraFeed::activate_feed() {
- // nothing to do here
- return true;
+ bool ret = true;
+ GDVIRTUAL_CALL(_activate_feed, ret);
+ return ret;
}
void CameraFeed::deactivate_feed() {
- // nothing to do here
+ GDVIRTUAL_CALL(_deactivate_feed);
}
bool CameraFeed::set_format(int p_index, const Dictionary &p_parameters) {
diff --git a/servers/camera/camera_feed.h b/servers/camera/camera_feed.h
index 365ed7c6357..2518c333f35 100644
--- a/servers/camera/camera_feed.h
+++ b/servers/camera/camera_feed.h
@@ -123,6 +123,9 @@ public:
virtual bool activate_feed();
virtual void deactivate_feed();
+
+ GDVIRTUAL0R(bool, _activate_feed)
+ GDVIRTUAL0(_deactivate_feed)
};
VARIANT_ENUM_CAST(CameraFeed::FeedDataType);