diff options
Diffstat (limited to 'platform/web')
-rw-r--r-- | platform/web/detect.py | 10 | ||||
-rw-r--r-- | platform/web/doc_classes/EditorExportPlatformWeb.xml | 54 | ||||
-rw-r--r-- | platform/web/export/export.cpp | 4 | ||||
-rw-r--r-- | platform/web/export/export.h | 1 | ||||
-rw-r--r-- | platform/web/export/export_plugin.cpp | 36 | ||||
-rw-r--r-- | platform/web/export/export_plugin.h | 2 |
6 files changed, 90 insertions, 17 deletions
diff --git a/platform/web/detect.py b/platform/web/detect.py index 08c1ff7b4a..419d8918f2 100644 --- a/platform/web/detect.py +++ b/platform/web/detect.py @@ -48,6 +48,16 @@ def get_opts(): ] +def get_doc_classes(): + return [ + "EditorExportPlatformWeb", + ] + + +def get_doc_path(): + return "doc_classes" + + def get_flags(): return [ ("arch", "wasm32"), diff --git a/platform/web/doc_classes/EditorExportPlatformWeb.xml b/platform/web/doc_classes/EditorExportPlatformWeb.xml new file mode 100644 index 0000000000..6e5a2ac078 --- /dev/null +++ b/platform/web/doc_classes/EditorExportPlatformWeb.xml @@ -0,0 +1,54 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<class name="EditorExportPlatformWeb" inherits="EditorExportPlatform" version="4.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd"> + <brief_description> + Exporter for the Web. + </brief_description> + <description> + </description> + <tutorials> + <link title="Exporting for the Web">$DOCS_URL/tutorials/export/exporting_for_web.html</link> + </tutorials> + <members> + <member name="custom_template/debug" type="String" setter="" getter=""> + Path to the custom export template. If left empty, default template is used. + </member> + <member name="custom_template/release" type="String" setter="" getter=""> + Path to the custom export template. If left empty, default template is used. + </member> + <member name="html/canvas_resize_policy" type="int" setter="" getter=""> + The canvas resize policy determines how the canvas should be resized by Godot. + </member> + <member name="html/custom_html_shell" type="String" setter="" getter=""> + </member> + <member name="html/experimental_virtual_keyboard" type="bool" setter="" getter=""> + </member> + <member name="html/export_icon" type="bool" setter="" getter=""> + </member> + <member name="html/focus_canvas_on_start" type="bool" setter="" getter=""> + </member> + <member name="html/head_include" type="String" setter="" getter=""> + </member> + <member name="progressive_web_app/background_color" type="Color" setter="" getter=""> + </member> + <member name="progressive_web_app/display" type="int" setter="" getter=""> + </member> + <member name="progressive_web_app/enabled" type="bool" setter="" getter=""> + </member> + <member name="progressive_web_app/icon_144x144" type="String" setter="" getter=""> + </member> + <member name="progressive_web_app/icon_180x180" type="String" setter="" getter=""> + </member> + <member name="progressive_web_app/icon_512x512" type="String" setter="" getter=""> + </member> + <member name="progressive_web_app/offline_page" type="String" setter="" getter=""> + </member> + <member name="progressive_web_app/orientation" type="int" setter="" getter=""> + </member> + <member name="variant/extensions_support" type="bool" setter="" getter=""> + </member> + <member name="vram_texture_compression/for_desktop" type="bool" setter="" getter=""> + </member> + <member name="vram_texture_compression/for_mobile" type="bool" setter="" getter=""> + </member> + </members> +</class> diff --git a/platform/web/export/export.cpp b/platform/web/export/export.cpp index 11e728ea16..54d9774da5 100644 --- a/platform/web/export/export.cpp +++ b/platform/web/export/export.cpp @@ -33,6 +33,10 @@ #include "editor/editor_settings.h" #include "export_plugin.h" +void register_web_exporter_types() { + GDREGISTER_VIRTUAL_CLASS(EditorExportPlatformWeb); +} + void register_web_exporter() { #ifndef ANDROID_ENABLED EDITOR_DEF("export/web/http_host", "localhost"); diff --git a/platform/web/export/export.h b/platform/web/export/export.h index 8d2bbfff26..da02bd8d93 100644 --- a/platform/web/export/export.h +++ b/platform/web/export/export.h @@ -31,6 +31,7 @@ #ifndef WEB_EXPORT_H #define WEB_EXPORT_H +void register_web_exporter_types(); void register_web_exporter(); #endif // WEB_EXPORT_H diff --git a/platform/web/export/export_plugin.cpp b/platform/web/export/export_plugin.cpp index d8e04904c7..7a62cd2a4a 100644 --- a/platform/web/export/export_plugin.cpp +++ b/platform/web/export/export_plugin.cpp @@ -320,7 +320,7 @@ void EditorExportPlatformWeb::get_preset_features(const Ref<EditorExportPreset> r_features->push_back("wasm32"); } -void EditorExportPlatformWeb::get_export_options(List<ExportOption> *r_options) { +void EditorExportPlatformWeb::get_export_options(List<ExportOption> *r_options) const { r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "custom_template/debug", PROPERTY_HINT_GLOBAL_FILE, "*.zip"), "")); r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "custom_template/release", PROPERTY_HINT_GLOBAL_FILE, "*.zip"), "")); @@ -656,31 +656,35 @@ void EditorExportPlatformWeb::_server_thread_poll(void *data) { } EditorExportPlatformWeb::EditorExportPlatformWeb() { - server.instantiate(); - server_thread.start(_server_thread_poll, this); + if (EditorNode::get_singleton()) { + server.instantiate(); + server_thread.start(_server_thread_poll, this); #ifdef MODULE_SVG_ENABLED - Ref<Image> img = memnew(Image); - const bool upsample = !Math::is_equal_approx(Math::round(EDSCALE), EDSCALE); + Ref<Image> img = memnew(Image); + const bool upsample = !Math::is_equal_approx(Math::round(EDSCALE), EDSCALE); - ImageLoaderSVG img_loader; - img_loader.create_image_from_string(img, _web_logo_svg, EDSCALE, upsample, false); - logo = ImageTexture::create_from_image(img); + ImageLoaderSVG img_loader; + img_loader.create_image_from_string(img, _web_logo_svg, EDSCALE, upsample, false); + logo = ImageTexture::create_from_image(img); - img_loader.create_image_from_string(img, _web_run_icon_svg, EDSCALE, upsample, false); - run_icon = ImageTexture::create_from_image(img); + img_loader.create_image_from_string(img, _web_run_icon_svg, EDSCALE, upsample, false); + run_icon = ImageTexture::create_from_image(img); #endif - Ref<Theme> theme = EditorNode::get_singleton()->get_editor_theme(); - if (theme.is_valid()) { - stop_icon = theme->get_icon(SNAME("Stop"), SNAME("EditorIcons")); - } else { - stop_icon.instantiate(); + Ref<Theme> theme = EditorNode::get_singleton()->get_editor_theme(); + if (theme.is_valid()) { + stop_icon = theme->get_icon(SNAME("Stop"), SNAME("EditorIcons")); + } else { + stop_icon.instantiate(); + } } } EditorExportPlatformWeb::~EditorExportPlatformWeb() { - server->stop(); + if (server.is_valid()) { + server->stop(); + } server_quit = true; server_thread.wait_to_finish(); } diff --git a/platform/web/export/export_plugin.h b/platform/web/export/export_plugin.h index e74c945837..334f12d64d 100644 --- a/platform/web/export/export_plugin.h +++ b/platform/web/export/export_plugin.h @@ -99,7 +99,7 @@ class EditorExportPlatformWeb : public EditorExportPlatform { public: virtual void get_preset_features(const Ref<EditorExportPreset> &p_preset, List<String> *r_features) const override; - virtual void get_export_options(List<ExportOption> *r_options) override; + virtual void get_export_options(List<ExportOption> *r_options) const override; virtual String get_name() const override; virtual String get_os_name() const override; |