diff --git a/doc/classes/CameraFeed.xml b/doc/classes/CameraFeed.xml
index 7623ae3ed8..0d3c5290fc 100644
--- a/doc/classes/CameraFeed.xml
+++ b/doc/classes/CameraFeed.xml
@@ -23,6 +23,20 @@
Called when the camera feed is deactivated.
+
+
+
+ Override this method to define supported formats of the camera feed.
+
+
+
+
+
+
+
+ Override this method to set the format of the camera feed.
+
+
diff --git a/servers/camera/camera_feed.cpp b/servers/camera/camera_feed.cpp
index 2b7d28558d..fcd29bd44d 100644
--- a/servers/camera/camera_feed.cpp
+++ b/servers/camera/camera_feed.cpp
@@ -61,6 +61,8 @@ void CameraFeed::_bind_methods() {
GDVIRTUAL_BIND(_activate_feed);
GDVIRTUAL_BIND(_deactivate_feed);
+ GDVIRTUAL_BIND(_set_format, "index", "parameters");
+ GDVIRTUAL_BIND(_get_formats);
ADD_SIGNAL(MethodInfo("frame_changed"));
ADD_SIGNAL(MethodInfo("format_changed"));
@@ -309,11 +311,15 @@ void CameraFeed::deactivate_feed() {
}
bool CameraFeed::set_format(int p_index, const Dictionary &p_parameters) {
- return false;
+ bool ret = false;
+ GDVIRTUAL_CALL(_set_format, p_index, p_parameters, ret);
+ return ret;
}
Array CameraFeed::get_formats() const {
- return Array();
+ Array ret;
+ GDVIRTUAL_CALL(_get_formats, ret);
+ return ret;
}
CameraFeed::FeedFormat CameraFeed::get_format() const {
diff --git a/servers/camera/camera_feed.h b/servers/camera/camera_feed.h
index 73725f233a..1edefd53f8 100644
--- a/servers/camera/camera_feed.h
+++ b/servers/camera/camera_feed.h
@@ -124,6 +124,8 @@ public:
virtual bool activate_feed();
virtual void deactivate_feed();
+ GDVIRTUAL2R(bool, _set_format, int, const Dictionary &);
+ GDVIRTUAL0RC(Array, _get_formats);
GDVIRTUAL0R(bool, _activate_feed)
GDVIRTUAL0(_deactivate_feed)
};