Pārlūkot izejas kodu

[HTML5] Implement get_processor_count.

Fabio Alessandrelli 4 gadi atpakaļ
vecāks
revīzija
03edba4d75

+ 1 - 0
platform/javascript/godot_js.h

@@ -49,6 +49,7 @@ extern int godot_js_os_fs_is_persistent();
 extern void godot_js_os_fs_sync(void (*p_callback)());
 extern int godot_js_os_execute(const char *p_json);
 extern void godot_js_os_shell_open(const char *p_uri);
+extern int godot_js_os_hw_concurrency_get();
 
 // Display
 extern int godot_js_display_screen_dpi_get();

+ 5 - 0
platform/javascript/js/libs/library_godot_os.js

@@ -282,6 +282,11 @@ const GodotOS = {
 	godot_js_os_shell_open: function (p_uri) {
 		window.open(GodotRuntime.parseString(p_uri), '_blank');
 	},
+
+	godot_js_os_hw_concurrency_get__sig: 'i',
+	godot_js_os_hw_concurrency_get: function () {
+		return navigator.hardwareConcurrency || 1;
+	},
 };
 
 autoAddDeps(GodotOS, '$GodotOS');

+ 4 - 0
platform/javascript/os_javascript.cpp

@@ -1069,6 +1069,10 @@ int OS_JavaScript::get_process_id() const {
 	ERR_FAIL_V_MSG(0, "OS::get_process_id() is not available on the HTML5 platform.");
 }
 
+int OS_JavaScript::get_processor_count() const {
+	return godot_js_os_hw_concurrency_get();
+}
+
 bool OS_JavaScript::_check_internal_feature_support(const String &p_feature) {
 
 	if (p_feature == "HTML5" || p_feature == "web") {

+ 1 - 0
platform/javascript/os_javascript.h

@@ -168,6 +168,7 @@ public:
 	virtual Error execute(const String &p_path, const List<String> &p_arguments, bool p_blocking = true, ProcessID *r_child_id = NULL, String *r_pipe = NULL, int *r_exitcode = NULL, bool read_stderr = false, Mutex *p_pipe_mutex = NULL);
 	virtual Error kill(const ProcessID &p_pid);
 	virtual int get_process_id() const;
+	int get_processor_count() const;
 
 	virtual void alert(const String &p_alert, const String &p_title = "ALERT!");
 	virtual void set_window_title(const String &p_title);