Commit graph

176 commits

Author SHA1 Message Date
Fabio Alessandrelli
d942d553ef [HTML5] Add PWA support to the editor page.
This allows to install it as an app, and provide offline support (after
the first run).
Practically, this boils down to adding a JSON file as a manifest, an
offline page to be displayed when the cached files are not avaialble,
and a JS file to cache resources and return them.

The reason for the "first run requirements" is that some browsers, will
emit an "install" by just visiting the page (to see if the JS code is
compatibile), and we do not want to force casual visitors to just
download the 10 MiB+ compressed editor WebAssembly file without pressing
the start button.

Special thanks to Hugo Locurcio (Calinou) for the initial work.
2021-03-08 17:06:41 +01:00
Fabio Alessandrelli
e3664e971b [HTML5] Make editor HTML build tag scons4-proof.
We used to have it like `$GODOT_VERSION` which caused inconsistencies
between different scons versions when substituting it.
It's now `@GODOT_VERSION@`, which is safe on both scons3 and scons4.

(cherry picked from commit 4404eb57e4)
2021-02-26 15:22:51 +01:00
Hugo Locurcio
3b4dd88e56 Improve the editor HTML template
- Darken the header tab background to match the default editor
  background color.
- Hide the distracting focus outlines for the editor and game canvas.
- Use a pure black background for the game canvas to better distinguish it
  from the editor and provide a more neutral background.
- Use a bold font weight for the Start Godot editor button on the
  loader page.
- Link to the web editor documentation on the loader page.
- Clarify what happens when clicking "OK" in the persistent data removal
  warning dialog.
- Tidy up the HTML template by removing obsolete attributes.

(cherry picked from commit 3527756943)
2021-02-25 22:37:49 +01:00
Riteo Siuga
6d7b25b98a Improve the MIME source file
- Add MIME definitions for resources, scenes and scripts
- Remove the "weight" property, which defaults to 50, a much saner value than the previous 100, which was a bit excessive.
- Changes their icon names in order to follow the XDG icon naming conventions.

(cherry picked from commit 876e165a49)
2021-02-25 15:14:32 +01:00
Marcel Admiraal
95272e11c4 Remove unused variables from full-size.html
(cherry picked from commit 548edfc4fe)
2021-02-22 10:18:26 +01:00
Fabio Alessandrelli
45a67fab35 [HTML5] Better fullscreen, canvas resizing.
Three canvas resize policies:
- `None`: Godot window settings are ignored.
- `Project`: Godot handles the canvas like a native app (resizing it
  when setting the window size).
- `Adaptive`: Canvas size will always adapt to browser window size.

Use `None` if you want to control the canvas size with custom JavaScript
code.
2021-02-19 05:13:44 +01:00
Fabio Alessandrelli
1eef8a318b [HTML5] Easier HTML templates, better deinit/cleanup. 2021-02-19 05:13:44 +01:00
Danil Alexeev
1fa8595bff
Change logo in the About dialog box (return Godot's teeth)
(cherry picked from commit c553ca54d5)

And fixup previous bogus cherry-pick that included merge conflicts.
2021-02-16 14:27:39 +01:00
Fabio Alessandrelli
5abe08f484
[HTML5] Editor: ensure canvas focus when switching tabs.
(cherry picked from commit b148ea2a64)
2021-02-11 13:17:08 +01:00
Fabio Alessandrelli
cd2a996d9e
[HTML5] Fix web editor "clear persistent data".
Was broken after update to new persistent path "/home/web_user".

(cherry picked from commit 7866cd5881)
2021-02-11 13:12:06 +01:00
Fabio Alessandrelli
2668ca7a8c [HTML5] Make home path persistent in editor.
We used to only persist specific sub-folder of /home/web_user/ when
running the Web Editor. This resulted in bad UX about default project
creation path etc.
This PR makes the whole folder persistent, move the zip preloading to a
different folder (to avoid persisting it), and automatically prompt the
user to import it if present.
2021-02-03 17:18:28 +01:00
Rémi Verschelde
c2ea80348c
Revert "[3.2] Add separate simulator flag for iOS build, change main library to xcframework." 2021-01-27 21:53:16 +01:00
Rémi Verschelde
9f2c24e8ce
Cleanup: Remove executable bit from files which don't need it
Drop unused xpmfix.sh script.

(cherry picked from commit 76c6007aa6)
2021-01-26 17:00:15 +01:00
bruvzg
389a4bfa59
[3.2] Add separate simulator flag for iOS build, change main library to xcframework format. 2021-01-26 16:00:26 +02:00
Fabio Alessandrelli
276b831c45 [HTML5] Better editor HTML, small refactor.
Side and GDNative libraries are now added by engine.js , the dynlink pre
js had been deleted.
2021-01-25 20:16:44 +01:00
Sergey Minakov
d5047603a3 iOS Export: export modification to support plugins
Added plugin configuration.
Export options now use plugins that could be enabled/disabled.
Plugin changes are observed at runtime.
2021-01-14 15:38:05 +03:00
Sergey Minakov
614f701373 iOS Modules: separate main platform code from modules
Moved previously builtin modules 'GameCenter', 'AppStore', 'iCloud' to separate modules to be represented as plugin.
Modified 'ARKit' and 'Camera' to not be builtin into engine and work as plugin.
Changed platform code so it's not affected by the move.
Modified Xcode project file to remove parameters that doesn't make any effect.
Added basic '.gdip' plugin config file.
2021-01-14 15:30:00 +03:00
Hugo Locurcio
49c2f2fec2
Make links on the HTML5 editor more readable
This also tweaks the focus style to apply to all elements for
better keyboard navigation.

(cherry picked from commit 663466b882)
2021-01-13 16:17:08 +01:00
Rémi Verschelde
49646383f1
Update copyright statements to 2021
Happy new year to the wonderful Godot community!

2020 has been a tough year for most of us personally, but a good year for
Godot development nonetheless with a huge amount of work done towards Godot
4.0 and great improvements backported to the long-lived 3.2 branch.

We've had close to 400 contributors to engine code this year, authoring near
7,000 commit! (And that's only for the `master` branch and for the engine code,
there's a lot more when counting docs, demos and other first-party repos.)

Here's to a great year 2021 for all Godot users 🎆

(cherry picked from commit b5334d14f7)
2021-01-13 16:17:06 +01:00
Hugo Locurcio
3db7ff3d82
Fix and decrease Godot logo size in the HTML5 editor loader
The logo can no longer overflow the viewport.

(cherry picked from commit d80224934e)
2020-12-29 16:02:02 +01:00
Lorenzo Cerqua
70af74587a
Remove two very slightly displaced duplicate vertices on Gobot's face
They didn't show up at all in the rendered PNG, but were pretty annoying when working with Gobot face on Inkscape

(cherry picked from commit 17b9cb2cdf)
2020-12-29 13:54:08 +01:00
Fabio Alessandrelli
6936ac9d5d [HTML5] Add logo and favicon to editor html. 2020-12-09 18:09:30 +01:00
Hugo Locurcio
295b16dcf2 [HTML5] Improve the editor HTML template. 2020-12-09 15:35:17 +01:00
Fabio Alessandrelli
b4b1df613e [HTML5] Editor also persists cache. 2020-12-09 13:47:23 +01:00
Fabio Alessandrelli
4ad95cc039 [HTML5] EditorRunNative works with GDNative.
This "breaks" our loading bar logic (libraries are not counted).
Fixing it is non trivial and probably deserves investigating a different
strategy.
2020-12-05 01:00:29 +01:00
Marcel Admiraal
e1b72e1943
Add missing javascript semi-colons.
(cherry picked from commit f42284ed07)
2020-11-17 22:25:32 +01:00
Hugo Locurcio
312d4aa390
Add files to create a Windows editor installer using Inno Setup
This partially addresses
https://github.com/godotengine/godot-proposals/issues/1432.

To fully address the proposal above, official Windows installers will
have to be compiled and distributed.

(cherry picked from commit 8baa303d15)
2020-11-17 12:01:59 +01:00
Fabio Alessandrelli
294e9752bd Add JavaScript editor html file. 2020-10-14 11:20:20 +02:00
Rémi Verschelde
7ef6aa7342
Merge pull request #42266 from Faless/js/3.0_sync_fs_size_handlers
[3.2] [HTML5] Synchronous main, better persistence, handlers fixes, optional full screen.
2020-10-02 16:23:35 +02:00
Sergey Minakov
3386fac02c iOS: fix deprecations
Change deprecated method calls to new ones.
Guard iOS version dependant functionality behind availability checks.
2020-10-01 18:09:55 +03:00
Fabio Alessandrelli
e7d00d08f5 Make canvas resize optional in HTML5. 2020-09-19 18:27:21 +02:00
Fabio Alessandrelli
40f73f74ce Better HiDPI support in HTML5. 2020-09-19 18:27:21 +02:00
Rémi Verschelde
2d52da7b8f
Bump version to 3.2.4-beta 2020-09-18 08:28:18 +02:00
Hazar
a430f68364
fix GDScript UTI
changed from public.data to public.script

(cherry picked from commit 5e5100afca)
2020-08-21 02:28:18 +02:00
Hugo Locurcio
c2d7d81ac8 Fix inconsistent indentation in the FreeDesktop MIME type XML
(cherry picked from commit 4dc6efc08e)
2020-08-14 00:32:04 +02:00
Rémi Verschelde
b40f3f9740 Style: Sync other changes from new fix_style.sh and clang_format.sh 2020-07-24 10:39:18 +02:00
Rémi Verschelde
eda03831d6 Style: Add missing newlines to SVGs 2020-07-24 10:39:18 +02:00
Sergey Minakov
46c6383c8d iOS Export: add option to use storyboard for launch screen 2020-07-07 00:01:35 +03:00
Sergey Minakov
e2a45fe840 iOS Export: Updated Info.plist. Framework embedding. Fixes for search paths 2020-07-02 12:46:57 +03:00
bruvzg
43888ebfaf
[macOS, 3.2] Add support for the Apple Silicon (ARM64) build target. 2020-06-29 14:43:29 +03:00
Rémi Verschelde
11bb4ef4c3 Bump version to 3.2.3-beta 2020-06-26 20:48:27 +02:00
Sergey Minakov
e564ca0c1b Export: Fix iOS enabling push notifications capability 2020-06-22 23:16:22 +03:00
Sergey Minakov
bc6a75786c Export: Remove system frameworks from xcode template 2020-06-22 23:16:22 +03:00
Hugo Locurcio
bab595393c Request the dedicated GPU when starting Godot from the .desktop file
See <https://www.hadess.net/2020/05/dual-gpu-support-launch-on-discrete-gpu.html>
for more information on this newly added `.desktop` entry property.

(cherry picked from commit b896ca8722)
2020-05-06 23:31:33 +02:00
Hugo Locurcio
9b6df1ed00 Set the title tag in the HTML5 export immediately
This makes the project title display without having to wait for
the project to finish loading.

(cherry picked from commit eecce139ea)
2020-04-27 10:19:33 +02:00
Ignacio Etcheverry
0e43565a7c Fix exporting corrupted Xcode pbxproj if project name has spaces 2020-04-14 18:03:10 +02:00
Rémi Verschelde
da4eb7101d Bump macOS Info.plist to 3.2.2 too 2020-03-22 17:26:57 +01:00
Hugo Locurcio
884dcdcd20 Add a fish shell completion file for the Godot editor
(cherry picked from commit 4d8dce1606)
2020-02-18 14:21:49 +01:00
Hugo Locurcio
30ca4a32a8 Export and reference the icon as favicon when exporting to HTML5
This makes the project icon display immediately as a favicon when
opening the page, without having to wait for the project to finish
loading.

(cherry picked from commit 4492cf856b)
2020-02-14 16:15:40 +01:00
Hugo Locurcio
f5951e757d
Add a Bash completion script for the Godot editor 2020-01-27 00:53:03 +01:00
Rémi Verschelde
9ed14815d8 Linux: Sync man page with current --help output 2020-01-26 19:02:09 +01:00
Hugo Locurcio
8e3e41642b
Add a zsh completion file for the Godot editor
This provides rich autocompletion when using Godot's command line
interface.
2020-01-10 14:54:04 +01:00
Rémi Verschelde
a7f49ac9a1 Update copyright statements to 2020
Happy new year to the wonderful Godot community!

We're starting a new decade with a well-established, non-profit, free
and open source game engine, and tons of further improvements in the
pipeline from hundreds of contributors.

Godot will keep getting better, and we're looking forward to all the
games that the community will keep developing and releasing with it.
2020-01-01 11:16:22 +01:00
Catchawink
5152afa70c Added microphone and camera usage descriptions to macOS builds. 2019-12-13 19:15:50 -05:00
bruvzg
ccf8778e86
[iOS] Add export options to control external access to user data. 2019-12-03 12:06:54 +02:00
bruvzg
2ef8c5fac5
iOS modular build and export implementation. 2019-12-01 21:57:18 +02:00
Hugo Locurcio
c8a8be6dd1
Optimize images losslessly using oxipng -o6 --strip all --zopfli 2019-10-12 23:23:33 +02:00
Relintai
6f1d6cfc78 Fixed running the export templates with newer emscripten versions. 2019-10-01 15:41:19 +02:00
Fabio Alessandrelli
e7760deb74 Fix HTML5 export after #30864 2019-09-14 16:47:55 +02:00
Enzo Ferrari
5323d24fad Fixed javascript code to remove animateStatusIndeterminate callback when the game is loaded.
(cherry picked from commit a5a413c7e9)
2019-09-03 13:39:57 +02:00
Bastiaan Olij
776dc93571 Add microphone privilege settings support back into export and add privilege exist check to camera server for iOS 2019-07-06 15:48:51 +10:00
Leonardo Giovanni Scur
31cc1bdb58 Fix pointer position in hidpi-corrected resolutions on web 2019-06-14 17:37:21 -03:00
Vasiliy Makarov
641922782e Make Xcode recursive search frameworks in project dir 2019-05-14 19:12:20 +03:00
Rémi Verschelde
7eabf4c8a3 dist: Rename Linux mime type to follow system convention
Mime type definitions are usually named like the mime type they define,
i.e. x-godot-project in our case.
It was introduced with reverse DNS naming as that's what FlatHub favors,
so it will need to be renamed there.
2019-04-03 13:24:28 +02:00
Allan Davis
bba5716899
Enable Mojave "dark mode" on the editor title bar
Enables "dark mode" in the editor and project selector title bars in macOS Mojave when selected in macOS System Preferences
2019-03-20 14:09:51 +00:00
Rémi Verschelde
860f097cc6 Bump version to 3.2-dev
No rest for the wicked.
2019-03-13 18:43:13 +01:00
Sam Green
36d627a9cf Remove microphone from export options and distribution plist 2019-03-04 18:01:02 -08:00
Bastiaan Olij
0f03ad379c New export options iOS 2019-02-16 12:11:53 +11:00
Rémi Verschelde
0f5a4fa7d5 Fix version in osx_tools.app 2019-02-10 17:01:25 +01:00
Rémi Verschelde
c363857426 Be explicit about usage of GDScript tests
Also drop empty "image" test, and print proper error when passing wrong
test name.

Fixes #25638.
2019-02-10 15:11:32 +01:00
PrestonKnopp
8adc611bf5 escaped '&' in macos osx_tools.app Info.plist 2019-01-02 18:11:21 -08:00
Rémi Verschelde
b16c309f82 Update copyright statements to 2019
Happy new year to the wonderful Godot community!
2019-01-01 12:58:10 +01:00
Rémi Verschelde
d1f3b622f0 Fix missing/malformed license headers 2019-01-01 12:46:36 +01:00
bruvzg
c2aac1a1db
File icons: separate icons for gdscript, resource, scene and projects. 2018-12-06 15:16:36 +02:00
Rémi Verschelde
bc2e1eedc5 Tests: Drop old test_io referencing data which isn't included
This should eventually be rewritten to properly test IO features,
but this would be part of a bigger work on adding a proper testing
framework for Godot features.

Fixes #2454.
2018-12-05 00:47:05 +01:00
qarmin
ee39441cb3 Change old Godot logo/splash screen in UWP assets 2018-11-27 20:09:56 +01:00
bruvzg
ccafdb5d05
[macOS] Fix file associations (for *.scn, *.tscn and project.godot). 2018-11-10 22:49:07 +02:00
Rémi Verschelde
5f8af252e8 doc: Use HTTPS for docs.godotengine.org and point to latest branch
Fixes #23509.
2018-11-05 08:46:27 +01:00
Rémi Verschelde
cef310e0ea
Merge pull request #21336 from eska014/html5-new-presentation
Add responsive HTML5 export page with full-size canvas as new default
2018-08-24 00:10:46 +02:00
Leon Krause
86d9e67d7a Add responsive HTML5 export page with full-size canvas as new default 2018-08-23 21:28:09 +02:00
Hugo Locurcio
01914ee00b
Tweak AppStream metadata and add MIME type integration
This allows Godot to be registered as an application to open
Godot project files.
2018-07-28 00:40:05 +02:00
Rémi Verschelde
2d4a4a245d Main: Fix --check-only option implemented as paired
Fixes #20503.

Also added the option to the Linux manpage.
2018-07-27 08:39:48 +02:00
Hugo Locurcio
7360f6aeff
Rename AppStream metadata and desktop files to follow the specification
This also adds a few more fields to the AppStream file to improve
desktop integration.
2018-07-24 15:18:50 +02:00
Yasha Borevich
f78e5e5725 Respect window/handheld/orientation setting in iOS 2018-07-01 22:08:37 +03:00
Hugo Locurcio
53e94a1ce1
Optimize images losslessly using oxipng -o6 --strip all --zopfli 2018-06-28 19:17:41 +02:00
Hugo Locurcio
8c08c4fe84
Remove the old AppImage structure
These files did not serve a real purpose since `icon.png` can be used
as the AppImage icon, and a .desktop file can be found at
`misc/dist/linux/godot.desktop` with the same contents.
2018-06-24 00:15:55 +02:00
Rémi Verschelde
eaa6613f06
Merge pull request #18770 from eska014/cmdline
Command line fixes
2018-05-11 14:20:50 +02:00
Leon Krause
c4c7270cc7 Fix help/man for --export and --export-debug 2018-05-10 22:08:21 +02:00
Rémi Verschelde
a415efa4b7
Merge pull request #18765 from eska014/enginejs-extalt
Facilitate using non-default filename extensions in HTML5 platform
2018-05-10 21:57:07 +02:00
Leon Krause
96f907c023 Accept non-default main packs in engine.js startGame()
Allows using startGame() with main packs exported as .zip, but also any
other custom extension, for example if a web game host does not allow
the .pck filename extension.
2018-05-10 15:08:19 +02:00
Leon Krause
9080e96bc8 Fix keyboard focus lock-out with HTML5 canvas in iframe 2018-05-10 02:42:47 +02:00
Ruslan Mustakov
1d9a3a9b1c iPhone X support and iOS-related fixes
Starting from April 2018 Apple no longer accepts apps that do not
support iPhone X. For games this mainly means respecting the safe area,
unobstructed by notch and virtual home button. UI controls must be
placed within the safe area so that users can interact with them.

This commit:

- Adds OS::get_window_safe_area method that returns unobscured area of
  the window, where interactive controls should be rendered.

- Reorganizes how launch screens are exported - the previous way was
  incorrect and modern iPhones did not pick up the correct screens and
  because of that used a non-native resolution to render the game.

- Adds launch screen options for iPhone X.

- Makes launch screens optional in the export template. If not
  specified, a white screen will be used.

- Adds App Store icon (1024x1024) export option as it now has to be
  bundled with the app instead of being provided in iTunes Connect.

- Fixes crash when launching games in iOS Simulator. It happened because
  controllerWasConnected callback came before the engine was
  initialized. Now in such case the controllers will be queued up and
  registered after initialization is done.

- Fixes issue with the virtual keyboard where for some reason
  autocorrection panel would intersect with the keyboard itself and not
  allow you to use the top row of the keyboard. This is fixed by
  disabling autocorrection altogether.

Closes #17358. Fixes #17428. Fixes #17331.
2018-04-11 14:53:24 +07:00
Michael Alexsander Silva Dias
ea97e2d0eb Added the "GLES2" option for the video-driver in the terminal help. 2018-03-25 23:23:53 -03:00
Rémi Verschelde
87290ba4cd
Merge pull request #17666 from akien-mga/editor-fps-verbose
Add --print-fps option to output FPS to stdout
2018-03-21 17:40:37 +01:00
Poommetee Ketson
ff070de986 s/2017/2018/g for gles2, websocket, linux appdata 2018-03-21 16:07:51 +07:00
Rémi Verschelde
10fa69285c Add --print-fps option to output FPS to stdout
Works both for the editor and games.

Projects can still use "debug/settings/stdout/print_fps" to enable it
permanently. The --print-fps option takes precedence (so works even if
the project setting is disabled). That setting is also no longer redefined
on the fly based on the verbose flag, that was a mess.
2018-03-21 09:08:51 +01:00
Leon Krause
61026e62bf Check only for WebGL 1.0, move test to HTML file
Whether to use WebGL 1.0 or 2.0 can only be determined at runtime after
reading project settings, so check for the lower version.

The test is now in the HTML file, so if desired WebGL 2.0 can be
checked early by changing the behaviour there.
2018-03-15 04:04:24 +01:00
Rémi Verschelde
a55e2f2dac Dist: Fix Linux desktop file launch argument 2018-03-14 12:05:25 +01:00
Rémi Verschelde
95b8984d5f Add --quit option to help output and update manpage 2018-02-24 18:22:29 +01:00
Rémi Verschelde
03d42e9e0d Dist: Update manpage and macOS version string 2018-01-25 23:21:31 +01:00