summaryrefslogtreecommitdiff
path: root/platform/javascript/export
AgeCommit message (Collapse)Author
2020-03-11[HTML5] Refactor JS, threads support, closures.Fabio Alessandrelli
- Refactored the Engine code, splitted across files. - Use MODULARIZE option to build emscripten code into it's own closure. - Enable lto support (saves ~2MiB in release). - Enable optional closure compiler pass for JS and generated code. - Enable optional pthreads support. - Can now build with tools=yes (not much to see yet). - Dropped some deprecated code for older toolchains.
2020-02-26Reimplement Mutex with C++'s <mutex>Pedro J. Estébanez
Main: - It's now implemented thanks to `<mutex>`. No more platform-specific implementations. - `BinaryMutex` (non-recursive) is added, as an alternative for special cases. - Doesn't need allocation/deallocation anymore. It can live in the stack and be part of other classes. - Because of that, it's methods are now `const` and the inner mutex is `mutable` so it can be easily used in `const` contexts. - A no-op implementation is provided if `NO_THREADS` is defined. No more need to add `#ifdef NO_THREADS` just for this. - `MutexLock` now takes a reference. At this point the cases of null `Mutex`es are rare. If you ever need that, just don't use `MutexLock`. - Thread-safe utilities are therefore simpler now. Misc.: - `ScopedMutexLock` is dropped and replaced by `MutexLock`, because they were pretty much the same. - Every case of lock, do-something, unlock is replaced by `MutexLock` (complex cases where it's not straightfoward are kept as as explicit lock and unlock). - `ShaderRD` contained an `std::mutex`, which has been replaced by `Mutex`.
2020-02-13Remove obsolete GLES3 backendRémi Verschelde
Due to the port to Vulkan and complete redesign of the rendering backend, the `drivers/gles3` code is no longer usable in this state and is not planned to be ported to the new architecture. The GLES2 backend is kept (while still disabled and non-working) as it will eventually be ported to serve as the low-end renderer for Godot 4.0. Some GLES3 features might be selectively ported to the updated GLES2 backend if there's a need for them, and extensions we can use for that. So long, OpenGL driver bugs!
2020-02-11Texture refactorJuan Linietsky
-Texture renamed to Texture2D -TextureLayered as base now inherits 2Darray, cubemap and cubemap array -Removed all references to flags in textures (they will go in the shader) -Texture3D gone for now (will come back later done properly) -Create base rasterizer for RenderDevice, RasterizerRD
2020-02-01Export and reference the icon as favicon when exporting to HTML5Hugo Locurcio
This makes the project icon display immediately as a favicon when opening the page, without having to wait for the project to finish loading.
2020-01-14Properly close files served by debug HTTP server.Fabio Alessandrelli
2020-01-14Add mime type to responses from debug HTTP server.Fabio Alessandrelli
Get rid of warnings in firefox mentioning performance loss when no mime type is given for wasm files.
2020-01-07Export: Improve usability of command line interfaceRémi Verschelde
I'm barely scratching the surface of the changes needed to make the --export command line interface easy to use, but this should already improve things somewhat. - Streamline `can_export()` templates check in all platforms, checking first for the presence of official templates, then of any defined custom template, and reporting on the absence of any. Shouldn't change the actual return value much which is still true if either release or debug is usable - we might want to change that eventually and better validate against the requested target. - Fix discrepancy between platforms using `custom_package/debug` and `custom_template/debug` (resp. `release`). All now use `custom_template`, which will break compatibility for `export_presets.cfg` with earlier projects (but is easy to fix). - Use `can_export()` when attempting a command line export and report the same errors that would be shown in the editor. - Improve error reporting after a failed export attempt, handling missing template and invalid path more gracefully. - Cleanup of unused stuff in EditorNode around the export workflow. - Improve --export documentation in --help a bit. Fixes #16949 (at least many of the misunderstandings listed there). Fixes #18470.
2020-01-01Update copyright statements to 2020Rémi Verschelde
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.
2019-10-23Implement HTTP server for HTML5 exportFabio Alessandrelli
Since most browsers no longer allow making async requests from a page loaded from `file://`, we now need a proper HTTP server to load the exported HTML5 game. This should also allow us to get the debugger to work over a WebSocket connection.
2019-10-23Improve EditorExportPlatform interface.Fabio Alessandrelli
Convert all get_device* methods to get_option* and normalize their usage as icon, label, tooltip.
2019-10-10Remove dependency on the editor directory being in the build's include path.Marcel Admiraal
- Add or remove the necessary subdirectorires to the includes to remove dependency on the editor directory being in the build's include path. - Ensure includes in modified files conform to style guideline. - Remove editor from the build include path.
2019-08-12Export: Remove temp files from cache after exportRémi Verschelde
So far we left most temporary files lying around, so this attempts to fix that. I added a helper method to DirAccess to factor out the boilerplate of creating a DirAccess, checking if the file exists, remove it or print an error on failure.
2019-06-19Made use of semicolons more consitent, fixed formattingJohnJLight
2019-03-11HTML5: Fix ETC export for GLES2 fallback on mobileRémi Verschelde
2019-03-06Fix directory check when exporting projectvolzhs
Fix #26702
2019-03-05Merge pull request #26626 from rluders/misleading-error-message-exportRémi Verschelde
Fixing misleading error message when trying to export
2019-03-05Fixes misleading error message when trying to exportRicardo Lüders
This patch fixes the misleading error message when users try to "export all" into an invalid destination path. Closes #26539
2019-03-05Fix HTML5 quick preview URLbruvzg
2019-03-03Improve VRAM texture compression checks for mobile/webRémi Verschelde
For HTML5, we need to support S3TC if running on desktop, and ETC or ETC2 for mobile, so make this explicit. Add logic to check for ETC2 support on GLES3, and remove incorrect ETC feature for GLES3 on Android. Fix ETC check invalidating templates on HTML5. Fixes #26476.
2019-02-26-Properly handle missing ETC support on exportJuan Linietsky
-Added ability for resource importers to save metadata -Added ability for resource importers to validate depending on project settings
2019-01-21ExportDialog: Make error messages translatableRémi Verschelde
Also fix missing newlines that caused #24202.
2019-01-01Update copyright statements to 2019Rémi Verschelde
Happy new year to the wonderful Godot community!
2018-11-01Export for OS X on OS X now lets you select .dmg or .zipMarcelo Fernandez
2018-09-12Make core/ includes absolute, remove subfolders from include pathRémi Verschelde
This allows more consistency in the manner we include core headers, where previously there would be a mix of absolute, relative and include path-dependent includes.
2018-08-23Fix file hintsMarcin Zawiejski
Fixes file hints so the file dialog actually displays the files with given extension (e.g. *.apk).
2018-08-21BPTC supportelasota
2018-08-20fix Android/HTML5 custom templates option does not workAlessandro
2018-07-26Reduce unnecessary COW on Vector by make writing explicitHein-Pieter van Braam
This commit makes operator[] on Vector const and adds a write proxy to it. From now on writes to Vectors need to happen through the .write proxy. So for instance: Vector<int> vec; vec.push_back(10); std::cout << vec[0] << std::endl; vec.write[0] = 20; Failing to use the .write proxy will cause a compilation error. In addition COWable datatypes can now embed a CowData pointer to their data. This means that String, CharString, and VMap no longer use or derive from Vector. _ALWAYS_INLINE_ and _FORCE_INLINE_ are now equivalent for debug and non-debug builds. This is a lot faster for Vector in the editor and while running tests. The reason why this difference used to exist is because force-inlined methods used to give a bad debugging experience. After extensive testing with modern compilers this is no longer the case.
2018-05-10Use local path for custom HTML5 shell exportLeon Krause
2018-01-20HTML export: Make s3tc the standard Texture Formatx1212
2018-01-12Fix HTML5 feature tagsLeon Krause
'HTML5' is the platform tag, the 'JavaScript' tag indicates availability of the JavaScript.eval singleton. Also report texture compression support.
2018-01-05Add missing copyright headers and fix formattingRémi Verschelde
Using `misc/scripts/fix_headers.py` on all Godot files. Some missing header guards were added, and the header inclusion order was fixed in the Bullet module.
2018-01-04Fixed missing parenthesisArtem Varaksa
2018-01-04Add missing translation in Javascript export dialogRémi Verschelde
Also remove newlines from translated strings.
2018-01-01Update copyright statements to 2018Rémi Verschelde
Happy new year to the wonderful Godot community!
2017-12-12Updated Linux template extensions to match architecture.Nathan Warden
2017-11-25Made Vector::ptrw explicit for writing, compiler was sometimes using the ↵Juan Linietsky
wrong function, leading to unnecesary copy on writes and reduced performance.
2017-11-21Allow configuring iOS exportRuslan Mustakov
- EditorExportPlugin's _export_begin accepts all the arguments related to the current export (is_debug, path, flags). - EditorExportPlugin API is extended with methods allowing to configure iOS export: add_ios_framework, add_ios_plist_content, add_ios_linker_flags, add_ios_bundle_file. - iOS export template now contains Godot as a static library so that it can be linked with third-party Frameworks and GDNative static libraries. - Adds method to DirAccess for recursive copying of a directory. - Fixes iOS export to work with Xcode 9 (released recently).
2017-11-20Merge pull request #13061 from eska014/html5-exportRémi Verschelde
Export boot splash image and add option for custom HTML shell file in HTML5 export
2017-11-20Merge pull request #12988 from akien-mga/xdg-home-pathsRémi Verschelde
Add support for XDG Base Directory spec
2017-11-20Export boot splash and add custom HTML file option in HTML5 exportLeon Krause
2017-11-19Use new XDG folders to dehardcode pathsRémi Verschelde
2017-11-18Remove asm.js support from HTML5 platformLeon Krause
Since WebGL 2.0 is required, requiring WebAssembly support as well has little impact on compatibility.
2017-11-17EditorSettings: Rename settings_path to settings_dirRémi Verschelde
Also to prepare for upcoming refactoring for XDG support.
2017-09-12Merge pull request #11154 from eska014/html5-startup-revampPoommetee Ketson
HTML5 start-up overhaul with download progress display
2017-09-11HTML5 start-up overhaulLeon Krause
- Implement promise-based JS interface for custom HTML page integration - Add download progress callback - Add progress bar and indeterminate spinner to default HTML page - Try downloading files multiple times when failing - Get rid of godotfs.js - Separate steps for engine initialization, game initialization and game start - Allow multiple games on one HTML page - Substitution placeholders only used in .html file - Placeholders renamed: $GODOT_BASE => $GODOT_BASENAME, $GODOT_TMEM -> $GODOT_TOTAL_MEMORY - Emscripten Module is now Engine.RuntimeEnvironment (no longer a global)
2017-08-27Use HTTPS URL for Godot's website in the headersRémi Verschelde
2017-07-19-Renamed GlobalConfig to ProjectSettings, makes more sense.Juan Linietsky
-Added system for feature overrides, it's pretty cool :)
2017-06-27Hide HTML5 native-run icon without runnable presetL. Krause