feat: updated godot version

This commit is contained in:
Sara Gerretsen 2026-04-04 19:38:56 +02:00
parent 0c508b0831
commit 42b028dbb5
4694 changed files with 236470 additions and 401376 deletions

View file

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="WebSocketMultiplayerPeer" inherits="MultiplayerPeer" api_type="core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../doc/class.xsd">
<class name="WebSocketMultiplayerPeer" inherits="MultiplayerPeer" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../doc/class.xsd">
<brief_description>
Base class for WebSocket server and client.
</brief_description>

View file

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="WebSocketPeer" inherits="PacketPeer" api_type="core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../doc/class.xsd">
<class name="WebSocketPeer" inherits="PacketPeer" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../doc/class.xsd">
<brief_description>
A WebSocket connection.
</brief_description>

View file

@ -32,7 +32,6 @@
#include "../remote_debugger_peer_websocket.h"
#include "core/os/os.h"
#include "editor/editor_log.h"
#include "editor/editor_node.h"
#include "editor/settings/editor_settings.h"
@ -117,7 +116,7 @@ bool EditorDebuggerServerWebSocket::is_connection_available() const {
Ref<RemoteDebuggerPeer> EditorDebuggerServerWebSocket::take_connection() {
ERR_FAIL_COND_V(!is_connection_available(), Ref<RemoteDebuggerPeer>());
Ref<RemoteDebuggerPeer> peer = memnew(RemoteDebuggerPeerWebSocket(pending_peer));
RemoteDebuggerPeer *peer = memnew(RemoteDebuggerPeerWebSocket(pending_peer));
pending_peer.unref();
return peer;
}
@ -130,7 +129,7 @@ EditorDebuggerServerWebSocket::~EditorDebuggerServerWebSocket() {
stop();
}
Ref<EditorDebuggerServer> EditorDebuggerServerWebSocket::create(const String &p_protocol) {
EditorDebuggerServer *EditorDebuggerServerWebSocket::create(const String &p_protocol) {
ERR_FAIL_COND_V(p_protocol != "ws://", nullptr);
return memnew(EditorDebuggerServerWebSocket);
}

View file

@ -45,7 +45,7 @@ private:
String endpoint;
public:
static Ref<EditorDebuggerServer> create(const String &p_protocol);
static EditorDebuggerServer *create(const String &p_protocol);
void _peer_connected(int p_peer, const String &p_protocol);
void _peer_disconnected(int p_peer, bool p_was_clean);

View file

@ -33,11 +33,6 @@
#ifdef WEB_ENABLED
#include "core/io/ip.h"
#include "core/object/class_db.h"
WebSocketPeer *EMWSPeer::_create(bool p_notify_postinitialize) {
return static_cast<WebSocketPeer *>(ClassDB::creator<EMWSPeer>(p_notify_postinitialize));
}
void EMWSPeer::_esws_on_connect(void *p_obj, char *p_proto) {
EMWSPeer *peer = static_cast<EMWSPeer *>(p_obj);
@ -111,7 +106,7 @@ Error EMWSPeer::connect_to_url(const String &p_url, const Ref<TLSOptions> &p_tls
if (peer_sock == -1) {
return FAILED;
}
in_buffer.resize(Math::nearest_shift((uint32_t)inbound_buffer_size), max_queued_packets);
in_buffer.resize(nearest_shift((uint32_t)inbound_buffer_size), max_queued_packets);
packet_buffer.resize(inbound_buffer_size);
ready_state = STATE_CONNECTING;
return OK;

View file

@ -66,7 +66,7 @@ private:
String selected_protocol;
String requested_url;
static WebSocketPeer *_create(bool p_notify_postinitialize);
static WebSocketPeer *_create(bool p_notify_postinitialize) { return static_cast<WebSocketPeer *>(ClassDB::creator<EMWSPeer>(p_notify_postinitialize)); }
static void _esws_on_connect(void *obj, char *proto);
static void _esws_on_message(void *obj, const uint8_t *p_data, int p_data_size, int p_is_string);
static void _esws_on_error(void *obj);

View file

@ -169,9 +169,14 @@ const GodotWebSocket = {
godot_js_websocket_send__proxy: 'sync',
godot_js_websocket_send__sig: 'iiiii',
godot_js_websocket_send: function (p_id, p_buf, p_buf_len, p_raw) {
let out = GodotRuntime.heapSlice(HEAPU8, p_buf, p_buf_len);
const bytes_array = new Uint8Array(p_buf_len);
let i = 0;
for (i = 0; i < p_buf_len; i++) {
bytes_array[i] = GodotRuntime.getHeapValue(p_buf + i, 'i8');
}
let out = bytes_array.buffer;
if (!p_raw) {
out = new TextDecoder('utf-8').decode(out);
out = new TextDecoder('utf-8').decode(bytes_array);
}
return GodotWebSocket.send(p_id, out);
},

View file

@ -46,7 +46,6 @@
#include "core/debugger/engine_debugger.h"
#include "core/error/error_macros.h"
#include "core/object/class_db.h"
#ifdef TOOLS_ENABLED
#include "editor/debugger/editor_debugger_server.h"

View file

@ -129,12 +129,12 @@ RemoteDebuggerPeerWebSocket::RemoteDebuggerPeerWebSocket(const Ref<WebSocketPeer
}
}
Ref<RemoteDebuggerPeer> RemoteDebuggerPeerWebSocket::create(const String &p_uri) {
RemoteDebuggerPeer *RemoteDebuggerPeerWebSocket::create(const String &p_uri) {
ERR_FAIL_COND_V(!p_uri.begins_with("ws://") && !p_uri.begins_with("wss://"), nullptr);
Ref<RemoteDebuggerPeerWebSocket> peer;
peer.instantiate();
RemoteDebuggerPeerWebSocket *peer = memnew(RemoteDebuggerPeerWebSocket);
Error err = peer->connect_to_host(p_uri);
if (err != OK) {
memdelete(peer);
return nullptr;
}
return peer;

View file

@ -44,7 +44,7 @@ class RemoteDebuggerPeerWebSocket : public RemoteDebuggerPeer {
int max_queued_messages;
public:
static Ref<RemoteDebuggerPeer> create(const String &p_uri);
static RemoteDebuggerPeer *create(const String &p_uri);
Error connect_to_host(const String &p_uri);

View file

@ -31,7 +31,6 @@
#include "websocket_multiplayer_peer.h"
#include "core/io/stream_peer_tls.h"
#include "core/object/class_db.h"
#include "core/os/os.h"
WebSocketMultiplayerPeer::WebSocketMultiplayerPeer() {

View file

@ -30,8 +30,6 @@
#include "websocket_peer.h"
#include "core/object/class_db.h"
WebSocketPeer *(*WebSocketPeer::_create)(bool p_notify_postinitialize) = nullptr;
WebSocketPeer::WebSocketPeer() {

View file

@ -33,8 +33,6 @@
#ifndef WEB_ENABLED
#include "core/io/stream_peer_tls.h"
#include "core/object/class_db.h"
#include "core/os/os.h"
CryptoCore::RandomGenerator *WSLPeer::_static_rng = nullptr;
@ -51,10 +49,6 @@ void WSLPeer::deinitialize() {
}
}
WebSocketPeer *WSLPeer::_create(bool p_notify_postinitialize) {
return static_cast<WebSocketPeer *>(ClassDB::creator<WSLPeer>(p_notify_postinitialize));
}
///
/// Resolver
///
@ -181,7 +175,7 @@ bool WSLPeer::_parse_client_request() {
}
requested_host = headers.has("host") ? headers.get("host") : "";
requested_url = (use_tls ? "wss://" : "ws://") + requested_host + req[1];
#define WSL_CHECK(NAME, VALUE) \
#define WSL_CHECK(NAME, VALUE) \
ERR_FAIL_COND_V_MSG(!headers.has(NAME) || headers[NAME].to_lower() != VALUE, false, \
"Missing or invalid header '" + String(NAME) + "'. Expected value '" + VALUE + "'.");
#define WSL_CHECK_EX(NAME) \
@ -303,7 +297,7 @@ Error WSLPeer::_do_server_handshake() {
wslay_event_context_server_init(&wsl_ctx, &_wsl_callbacks, this);
wslay_event_config_set_no_buffering(wsl_ctx, 1);
wslay_event_config_set_max_recv_msg_length(wsl_ctx, inbound_buffer_size);
in_buffer.resize(Math::nearest_shift((uint32_t)inbound_buffer_size), max_queued_packets);
in_buffer.resize(nearest_shift((uint32_t)inbound_buffer_size), max_queued_packets);
packet_buffer.resize(inbound_buffer_size);
ready_state = STATE_OPEN;
}
@ -412,7 +406,7 @@ void WSLPeer::_do_client_handshake() {
wslay_event_context_client_init(&wsl_ctx, &_wsl_callbacks, this);
wslay_event_config_set_no_buffering(wsl_ctx, 1);
wslay_event_config_set_max_recv_msg_length(wsl_ctx, inbound_buffer_size);
in_buffer.resize(Math::nearest_shift((uint32_t)inbound_buffer_size), max_queued_packets);
in_buffer.resize(nearest_shift((uint32_t)inbound_buffer_size), max_queued_packets);
packet_buffer.resize(inbound_buffer_size);
ready_state = STATE_OPEN;
break;
@ -446,10 +440,10 @@ bool WSLPeer::_verify_server_response() {
}
}
#define WSL_CHECK(NAME, VALUE) \
#define WSL_CHECK(NAME, VALUE) \
ERR_FAIL_COND_V_MSG(!headers.has(NAME) || headers[NAME].to_lower() != VALUE, false, \
"Missing or invalid header '" + String(NAME) + "'. Expected value '" + VALUE + "'.");
#define WSL_CHECK_NC(NAME, VALUE) \
#define WSL_CHECK_NC(NAME, VALUE) \
ERR_FAIL_COND_V_MSG(!headers.has(NAME) || headers[NAME] != VALUE, false, \
"Missing or invalid header '" + String(NAME) + "'. Expected value '" + VALUE + "'.");
WSL_CHECK("connection", "upgrade");

View file

@ -45,7 +45,7 @@
class WSLPeer : public WebSocketPeer {
private:
static CryptoCore::RandomGenerator *_static_rng;
static WebSocketPeer *_create(bool p_notify_postinitialize);
static WebSocketPeer *_create(bool p_notify_postinitialize) { return static_cast<WebSocketPeer *>(ClassDB::creator<WSLPeer>(p_notify_postinitialize)); }
// Callbacks.
static ssize_t _wsl_recv_callback(wslay_event_context_ptr ctx, uint8_t *data, size_t len, int flags, void *user_data);