From 5b858fab1f979dab8098cf5adce0d88f2df3baa6 Mon Sep 17 00:00:00 2001 From: David Snopek Date: Fri, 28 Feb 2025 22:09:35 -0600 Subject: [PATCH] Add web export --- export_presets.cfg | 42 +++++++++++++++++++++++++++++++++++ project.godot | 1 - scenes/util/DataManager.gd | 4 +++- scenes/util/ExhibitFetcher.gd | 14 ++++++------ 4 files changed, 52 insertions(+), 9 deletions(-) diff --git a/export_presets.cfg b/export_presets.cfg index 0e21eca1..c97db37c 100644 --- a/export_presets.cfg +++ b/export_presets.cfg @@ -591,3 +591,45 @@ pico_xr_features/face_tracking=0 pico_xr_features/hand_tracking=0 xr_features/enable_magicleap_plugin=false magicleap_xr_features/hand_tracking=0 + +[preset.4] + +name="Web" +platform="Web" +runnable=true +advanced_options=false +dedicated_server=false +custom_features="" +export_filter="all_resources" +include_filter="" +exclude_filter="" +export_path="dist/web/index.html" +encryption_include_filters="" +encryption_exclude_filters="" +encrypt_pck=false +encrypt_directory=false +script_export_mode=2 + +[preset.4.options] + +custom_template/debug="" +custom_template/release="" +variant/extensions_support=false +variant/thread_support=true +vram_texture_compression/for_desktop=true +vram_texture_compression/for_mobile=false +html/export_icon=true +html/custom_html_shell="" +html/head_include="" +html/canvas_resize_policy=2 +html/focus_canvas_on_start=true +html/experimental_virtual_keyboard=false +progressive_web_app/enabled=false +progressive_web_app/ensure_cross_origin_isolation_headers=true +progressive_web_app/offline_page="" +progressive_web_app/display=1 +progressive_web_app/orientation=0 +progressive_web_app/icon_144x144="" +progressive_web_app/icon_180x180="" +progressive_web_app/icon_512x512="" +progressive_web_app/background_color=Color(0, 0, 0, 1) diff --git a/project.godot b/project.godot index 8d9a4abb..7873ecf0 100644 --- a/project.godot +++ b/project.godot @@ -200,7 +200,6 @@ tls/certificate_bundle_override="res://assets/certs/cacert.crt" [physics] -3d/run_on_separate_thread=true common/physics_interpolation=true common/enable_pause_aware_picking=true diff --git a/scenes/util/DataManager.gd b/scenes/util/DataManager.gd index 51bef287..43b9d778 100644 --- a/scenes/util/DataManager.gd +++ b/scenes/util/DataManager.gd @@ -40,7 +40,9 @@ func _texture_load_thread_loop(): if data: _create_and_emit_image(item.url, data, item.ctx) else: - var result = RequestSync.request(item.url, COMMON_HEADERS) + var request_url = item.url + request_url += ('&' if '?' in request_url else '?') + "origin=*" + var result = RequestSync.request(request_url, COMMON_HEADERS) if result[0] != OK: push_error("failed to fetch image ", result[1], " ", item.url) else: diff --git a/scenes/util/ExhibitFetcher.gd b/scenes/util/ExhibitFetcher.gd index 9189feed..31a54fa3 100644 --- a/scenes/util/ExhibitFetcher.gd +++ b/scenes/util/ExhibitFetcher.gd @@ -20,15 +20,15 @@ const WIKIDATA_PREFIX = "https://www.wikidata.org/wiki/" const WIKIDATA_COMMONS_CATEGORY = "P373" const WIKIDATA_COMMONS_GALLERY = "P935" -var search_endpoint = "https://en.wikipedia.org/w/api.php?action=query&format=json&list=search&srprop=title&srsearch=" -var random_endpoint = "https://en.wikipedia.org/w/api.php?action=query&format=json&generator=random&grnnamespace=0&prop=info" +var search_endpoint = "https://en.wikipedia.org/w/api.php?action=query&format=json&list=search&srprop=title&origin=*&srsearch=" +var random_endpoint = "https://en.wikipedia.org/w/api.php?action=query&format=json&generator=random&grnnamespace=0&prop=info&origin=*" -var wikitext_endpoint = "https://en.wikipedia.org/w/api.php?action=query&prop=revisions|extracts|pageprops&ppprop=wikibase_item&explaintext=true&rvprop=content&format=json&redirects=1&titles=" -var images_endpoint = "https://en.wikipedia.org/w/api.php?action=query&prop=imageinfo&iiprop=extmetadata|url&iiurlwidth=640&iiextmetadatafilter=LicenseShortName|Artist&format=json&redirects=1&titles=" -var wikidata_endpoint = "https://www.wikidata.org/w/api.php?action=wbgetclaims&format=json&entity=" +var wikitext_endpoint = "https://en.wikipedia.org/w/api.php?action=query&prop=revisions|extracts|pageprops&ppprop=wikibase_item&explaintext=true&rvprop=content&format=json&redirects=1&origin=*&titles=" +var images_endpoint = "https://en.wikipedia.org/w/api.php?action=query&prop=imageinfo&iiprop=extmetadata|url&iiurlwidth=640&iiextmetadatafilter=LicenseShortName|Artist&format=json&redirects=1&origin=*&titles=" +var wikidata_endpoint = "https://www.wikidata.org/w/api.php?action=wbgetclaims&format=json&origin=*&entity=" -var wikimedia_commons_category_images_endpoint = "https://commons.wikimedia.org/w/api.php?action=query&generator=categorymembers&gcmtype=file&gcmlimit=max&prop=imageinfo&iiprop=url|extmetadata&iiurlwidth=640&iiextmetadatafilter=Artist|LicenseShortName&format=json&gcmtitle=" -var wikimedia_commons_gallery_images_endpoint = "https://commons.wikimedia.org/w/api.php?action=query&generator=images&gimlimit=max&prop=imageinfo&iiprop=url|extmetadata&iiurlwidth=640&iiextmetadatafilter=Artist|LicenseShortName&format=json&titles=" +var wikimedia_commons_category_images_endpoint = "https://commons.wikimedia.org/w/api.php?action=query&generator=categorymembers&gcmtype=file&gcmlimit=max&prop=imageinfo&iiprop=url|extmetadata&iiurlwidth=640&iiextmetadatafilter=Artist|LicenseShortName&format=json&origin=*&gcmtitle=" +var wikimedia_commons_gallery_images_endpoint = "https://commons.wikimedia.org/w/api.php?action=query&generator=images&gimlimit=max&prop=imageinfo&iiprop=url|extmetadata&iiurlwidth=640&iiextmetadatafilter=Artist|LicenseShortName&format=json&origin=*&titles=" var _fs_lock = Mutex.new() var _results_lock = Mutex.new()