Use default export templates for HTML5

Changes Emscripten SDK version to match that used to compile the default export
templates used by Godot 3.5 (in this case 3.1.14 as can be seen here:
https://github.com/godotengine/build-containers/blob/3.5/Dockerfile.javascript).

This means we no longer need to compile custom export templates when
exporting HTML5 for Godot 3.5. Exports from other Godot versions may
requiring compiling the GDNative library with a different version of the
Emscripten SDK.

- Changes renderer from GLES3 -> GLES2 and reduces MSAA level to better
  support HTML5 export.
- Updates GitHub Action to export HTML5 and upload as a build artifact.
- Adds Cypress test to smoke test HTML5 export.
This commit is contained in:
Leroy Hopson 2022-08-01 19:56:43 +12:00
parent 2fa2322d7c
commit 10b9764fb3
No known key found for this signature in database
GPG key ID: D2747312A6DB51AA
26 changed files with 4896 additions and 118 deletions

View file

@ -82,5 +82,5 @@ scons target=$target macos_arch=$(uname -m) disable_pty=$disable_pty -j$nproc
# Use Docker to build libgodot-xterm javascript.
if [ -x "$(command -v docker-compose)" ]; then
UID_GID="0:0" TARGET=$target docker-compose build javascript
UID_GID="$(id -u):$(id -g)" TARGET=$target docker-compose run javascript
UID_GID="$(id -u):$(id -g)" TARGET=$target docker-compose run --rm javascript
fi

View file

@ -1,6 +1,8 @@
services:
javascript:
build: ../../../misc/docker
build:
context: .
dockerfile: javascript.Dockerfile
user: ${UID_GID}
volumes:
- .:/src

View file

@ -0,0 +1,4 @@
# For convenient building of the library and gdnative export templates targeted at the javacript platform.
FROM emscripten/emsdk:3.1.14
RUN apt-get update && apt-get install pkg-config python3 -y
RUN pip3 install scons

View file

@ -31,7 +31,7 @@ void Terminal::_populate_key_list() {
#define GLOBAL_CONSTANT(VAR) GlobalConstants::VAR
#else
#define GLOBAL_CONSTANT(VAR) get_constant(#VAR)
const godot_dictionary _constants = godot_get_global_constants();
const godot_dictionary _constants = godot::api->godot_get_global_constants();
const Dictionary *constants = (Dictionary *)&_constants;
auto get_constant = [constants](std::string name) -> int64_t {