summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--platform/web/audio_driver_web.h5
-rw-r--r--platform/web/display_server_web.h32
-rw-r--r--platform/web/godot_js.h2
-rw-r--r--platform/web/javascript_bridge_singleton.cpp10
-rw-r--r--platform/web/os_web.h10
5 files changed, 33 insertions, 26 deletions
diff --git a/platform/web/audio_driver_web.h b/platform/web/audio_driver_web.h
index 7bfed834e1..12a61746c3 100644
--- a/platform/web/audio_driver_web.h
+++ b/platform/web/audio_driver_web.h
@@ -32,6 +32,7 @@
#define AUDIO_DRIVER_WEB_H
#include "godot_audio.h"
+#include "godot_js.h"
#include "core/os/mutex.h"
#include "core/os/thread.h"
@@ -55,8 +56,8 @@ private:
int mix_rate = 0;
int channel_count = 0;
- static void _state_change_callback(int p_state);
- static void _latency_update_callback(float p_latency);
+ WASM_EXPORT static void _state_change_callback(int p_state);
+ WASM_EXPORT static void _latency_update_callback(float p_latency);
static AudioDriverWeb *singleton;
diff --git a/platform/web/display_server_web.h b/platform/web/display_server_web.h
index a4fd75f33b..1653deff80 100644
--- a/platform/web/display_server_web.h
+++ b/platform/web/display_server_web.h
@@ -33,6 +33,8 @@
#include "servers/display_server.h"
+#include "godot_js.h"
+
#include <emscripten.h>
#include <emscripten/html5.h>
@@ -88,28 +90,28 @@ private:
static const char *godot2dom_cursor(DisplayServer::CursorShape p_shape);
// events
- static void fullscreen_change_callback(int p_fullscreen);
- static int mouse_button_callback(int p_pressed, int p_button, double p_x, double p_y, int p_modifiers);
- static void mouse_move_callback(double p_x, double p_y, double p_rel_x, double p_rel_y, int p_modifiers);
- static int mouse_wheel_callback(double p_delta_x, double p_delta_y);
- static void touch_callback(int p_type, int p_count);
- static void key_callback(int p_pressed, int p_repeat, int p_modifiers);
- static void vk_input_text_callback(const char *p_text, int p_cursor);
- static void gamepad_callback(int p_index, int p_connected, const char *p_id, const char *p_guid);
+ WASM_EXPORT static void fullscreen_change_callback(int p_fullscreen);
+ WASM_EXPORT static int mouse_button_callback(int p_pressed, int p_button, double p_x, double p_y, int p_modifiers);
+ WASM_EXPORT static void mouse_move_callback(double p_x, double p_y, double p_rel_x, double p_rel_y, int p_modifiers);
+ WASM_EXPORT static int mouse_wheel_callback(double p_delta_x, double p_delta_y);
+ WASM_EXPORT static void touch_callback(int p_type, int p_count);
+ WASM_EXPORT static void key_callback(int p_pressed, int p_repeat, int p_modifiers);
+ WASM_EXPORT static void vk_input_text_callback(const char *p_text, int p_cursor);
+ WASM_EXPORT static void gamepad_callback(int p_index, int p_connected, const char *p_id, const char *p_guid);
void process_joypads();
- static void _js_utterance_callback(int p_event, int p_id, int p_pos);
+ WASM_EXPORT static void _js_utterance_callback(int p_event, int p_id, int p_pos);
static Vector<String> get_rendering_drivers_func();
static DisplayServer *create_func(const String &p_rendering_driver, WindowMode p_window_mode, VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, Error &r_error);
static void _dispatch_input_event(const Ref<InputEvent> &p_event);
- static void request_quit_callback();
- static void window_blur_callback();
- static void update_voices_callback(int p_size, const char **p_voice);
- static void update_clipboard_callback(const char *p_text);
- static void send_window_event_callback(int p_notification);
- static void drop_files_js_callback(char **p_filev, int p_filec);
+ WASM_EXPORT static void request_quit_callback();
+ WASM_EXPORT static void window_blur_callback();
+ WASM_EXPORT static void update_voices_callback(int p_size, const char **p_voice);
+ WASM_EXPORT static void update_clipboard_callback(const char *p_text);
+ WASM_EXPORT static void send_window_event_callback(int p_notification);
+ WASM_EXPORT static void drop_files_js_callback(char **p_filev, int p_filec);
protected:
int get_current_video_driver() const;
diff --git a/platform/web/godot_js.h b/platform/web/godot_js.h
index 3341cf8a67..f172148bf9 100644
--- a/platform/web/godot_js.h
+++ b/platform/web/godot_js.h
@@ -31,6 +31,8 @@
#ifndef GODOT_JS_H
#define GODOT_JS_H
+#define WASM_EXPORT __attribute__((visibility("default")))
+
#ifdef __cplusplus
extern "C" {
#endif
diff --git a/platform/web/javascript_bridge_singleton.cpp b/platform/web/javascript_bridge_singleton.cpp
index 2bd44e044d..41206f14a5 100644
--- a/platform/web/javascript_bridge_singleton.cpp
+++ b/platform/web/javascript_bridge_singleton.cpp
@@ -68,11 +68,11 @@ private:
int _js_id = 0;
Callable _callable;
- static int _variant2js(const void **p_args, int p_pos, godot_js_wrapper_ex *r_val, void **p_lock);
- static void _free_lock(void **p_lock, int p_type);
- static Variant _js2variant(int p_type, godot_js_wrapper_ex *p_val);
- static void *_alloc_variants(int p_size);
- static void _callback(void *p_ref, int p_arg_id, int p_argc);
+ WASM_EXPORT static int _variant2js(const void **p_args, int p_pos, godot_js_wrapper_ex *r_val, void **p_lock);
+ WASM_EXPORT static void _free_lock(void **p_lock, int p_type);
+ WASM_EXPORT static Variant _js2variant(int p_type, godot_js_wrapper_ex *p_val);
+ WASM_EXPORT static void *_alloc_variants(int p_size);
+ WASM_EXPORT static void _callback(void *p_ref, int p_arg_id, int p_argc);
protected:
bool _set(const StringName &p_name, const Variant &p_value) override;
diff --git a/platform/web/os_web.h b/platform/web/os_web.h
index 5335340b79..f262337f00 100644
--- a/platform/web/os_web.h
+++ b/platform/web/os_web.h
@@ -33,6 +33,8 @@
#include "audio_driver_web.h"
+#include "godot_js.h"
+
#include "core/input/input.h"
#include "drivers/unix/os_unix.h"
#include "servers/audio_server.h"
@@ -48,11 +50,11 @@ class OS_Web : public OS_Unix {
bool idb_needs_sync = false;
bool pwa_is_waiting = false;
- static void main_loop_callback();
+ WASM_EXPORT static void main_loop_callback();
- static void file_access_close_callback(const String &p_file, int p_flags);
- static void fs_sync_callback();
- static void update_pwa_state_callback();
+ WASM_EXPORT static void file_access_close_callback(const String &p_file, int p_flags);
+ WASM_EXPORT static void fs_sync_callback();
+ WASM_EXPORT static void update_pwa_state_callback();
protected:
void initialize() override;