diff --git a/misc/extension_api_validation/4.0-stable.expected b/misc/extension_api_validation/4.0-stable.expected index 444560eb536b..963c997aa0dd 100644 --- a/misc/extension_api_validation/4.0-stable.expected +++ b/misc/extension_api_validation/4.0-stable.expected @@ -6,6 +6,10 @@ should instead be used to justify these changes and describe how users should wo ======================================================================================================================== +GH-78237 +-------- +Validate extension JSON: Error: Field 'classes/WebRTCPeerConnectionExtension/methods/_create_data_channel/return_value': type changed value in new API, from "Object" to "WebRTCDataChannel". + GH-77757 -------- Validate extension JSON: Error: Field 'classes/Viewport/methods/gui_get_focus_owner': is_const changed value in new API, from false to true. diff --git a/modules/webrtc/doc_classes/WebRTCPeerConnectionExtension.xml b/modules/webrtc/doc_classes/WebRTCPeerConnectionExtension.xml index 535a20d67e37..dbe6033c4dab 100644 --- a/modules/webrtc/doc_classes/WebRTCPeerConnectionExtension.xml +++ b/modules/webrtc/doc_classes/WebRTCPeerConnectionExtension.xml @@ -21,7 +21,7 @@ - + diff --git a/modules/webrtc/webrtc_peer_connection_extension.cpp b/modules/webrtc/webrtc_peer_connection_extension.cpp index 15e6bac3b03c..248b0cf61027 100644 --- a/modules/webrtc/webrtc_peer_connection_extension.cpp +++ b/modules/webrtc/webrtc_peer_connection_extension.cpp @@ -43,14 +43,3 @@ void WebRTCPeerConnectionExtension::_bind_methods() { GDVIRTUAL_BIND(_poll); GDVIRTUAL_BIND(_close); } - -Ref WebRTCPeerConnectionExtension::create_data_channel(String p_label, Dictionary p_options) { - Object *ret = nullptr; - if (GDVIRTUAL_CALL(_create_data_channel, p_label, p_options, ret)) { - WebRTCDataChannel *ch = Object::cast_to(ret); - ERR_FAIL_COND_V_MSG(ret && !ch, nullptr, "Returned object must be an instance of WebRTCDataChannel."); - return ch; - } - WARN_PRINT_ONCE("WebRTCPeerConnectionExtension::_create_data_channel is unimplemented!"); - return nullptr; -} diff --git a/modules/webrtc/webrtc_peer_connection_extension.h b/modules/webrtc/webrtc_peer_connection_extension.h index a2a5c773f0bf..f3339f1eb41f 100644 --- a/modules/webrtc/webrtc_peer_connection_extension.h +++ b/modules/webrtc/webrtc_peer_connection_extension.h @@ -45,17 +45,12 @@ protected: static void _bind_methods(); public: - // FIXME Can't be directly exposed due to issues in exchanging Ref(s) between godot and extensions. - // See godot-cpp GH-652 . - virtual Ref create_data_channel(String p_label, Dictionary p_options = Dictionary()) override; - GDVIRTUAL2R(Object *, _create_data_channel, String, Dictionary); - // EXBIND2R(Ref, create_data_channel, String, Dictionary); - /** GDExtension **/ EXBIND0RC(ConnectionState, get_connection_state); EXBIND0RC(GatheringState, get_gathering_state); EXBIND0RC(SignalingState, get_signaling_state); EXBIND1R(Error, initialize, Dictionary); + EXBIND2R(Ref, create_data_channel, String, Dictionary); EXBIND0R(Error, create_offer); EXBIND2R(Error, set_remote_description, String, String); EXBIND2R(Error, set_local_description, String, String);