1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-20 14:45:44 +00:00

Revert "Web: Avoid unnecessary gamepad polling when no gamepads are connected"

This reverts commit 3e7e09f915.
This commit is contained in:
Adam Scott
2025-06-26 08:07:29 -04:00
parent 9a3976097f
commit 722accc5c8
3 changed files with 3 additions and 13 deletions

View File

@@ -830,9 +830,6 @@ void DisplayServerWeb::gamepad_callback(int p_index, int p_connected, const char
void DisplayServerWeb::_gamepad_callback(int p_index, int p_connected, const String &p_id, const String &p_guid) { void DisplayServerWeb::_gamepad_callback(int p_index, int p_connected, const String &p_id, const String &p_guid) {
Input *input = Input::get_singleton(); Input *input = Input::get_singleton();
DisplayServerWeb *ds = get_singleton();
ds->active_gamepad_sample_count = -1; // Invalidate cache
if (p_connected) { if (p_connected) {
input->joy_connection_changed(p_index, true, p_id, p_guid); input->joy_connection_changed(p_index, true, p_id, p_guid);
} else { } else {
@@ -1435,10 +1432,7 @@ DisplayServer::VSyncMode DisplayServerWeb::window_get_vsync_mode(WindowID p_vsyn
void DisplayServerWeb::process_events() { void DisplayServerWeb::process_events() {
process_keys(); process_keys();
Input::get_singleton()->flush_buffered_events(); Input::get_singleton()->flush_buffered_events();
if (active_gamepad_sample_count == -1) { if (godot_js_input_gamepad_sample() == OK) {
active_gamepad_sample_count = godot_js_input_gamepad_sample();
}
if (active_gamepad_sample_count > 0) {
process_joypads(); process_joypads();
} }
} }

View File

@@ -104,8 +104,6 @@ private:
bool swap_cancel_ok = false; bool swap_cancel_ok = false;
NativeMenu *native_menu = nullptr; NativeMenu *native_menu = nullptr;
int active_gamepad_sample_count = -1;
MouseMode mouse_mode_base = MOUSE_MODE_VISIBLE; MouseMode mouse_mode_base = MOUSE_MODE_VISIBLE;
MouseMode mouse_mode_override = MOUSE_MODE_VISIBLE; MouseMode mouse_mode_override = MOUSE_MODE_VISIBLE;
bool mouse_mode_override_enabled = false; bool mouse_mode_override_enabled = false;

View File

@@ -205,7 +205,6 @@ const GodotInputGamepads = {
sample: function () { sample: function () {
const pads = GodotInputGamepads.get_pads(); const pads = GodotInputGamepads.get_pads();
const samples = []; const samples = [];
let active = 0;
for (let i = 0; i < pads.length; i++) { for (let i = 0; i < pads.length; i++) {
const pad = pads[i]; const pad = pads[i];
if (!pad) { if (!pad) {
@@ -225,10 +224,8 @@ const GodotInputGamepads = {
s.axes.push(pad.axes[a]); s.axes.push(pad.axes[a]);
} }
samples.push(s); samples.push(s);
active++;
} }
GodotInputGamepads.samples = samples; GodotInputGamepads.samples = samples;
return active;
}, },
init: function (onchange) { init: function (onchange) {
@@ -662,7 +659,8 @@ const GodotInput = {
godot_js_input_gamepad_sample__proxy: 'sync', godot_js_input_gamepad_sample__proxy: 'sync',
godot_js_input_gamepad_sample__sig: 'i', godot_js_input_gamepad_sample__sig: 'i',
godot_js_input_gamepad_sample: function () { godot_js_input_gamepad_sample: function () {
return GodotInputGamepads.sample(); GodotInputGamepads.sample();
return 0;
}, },
godot_js_input_gamepad_sample_get__proxy: 'sync', godot_js_input_gamepad_sample_get__proxy: 'sync',