diff options
| author | Leon Krause | 2018-03-15 04:00:32 +0100 |
|---|---|---|
| committer | Leon Krause | 2018-03-15 04:04:24 +0100 |
| commit | 61026e62bf8659a4ffe4fc1b5cbd404d3e25adeb (patch) | |
| tree | 5b5d883fe1e3997c494b5da21fe7352b343d501a /platform/javascript | |
| parent | 955397dfd5845c0bd1510581a77d20989f13ab19 (diff) | |
| download | godot-61026e62bf8659a4ffe4fc1b5cbd404d3e25adeb.tar.gz godot-61026e62bf8659a4ffe4fc1b5cbd404d3e25adeb.tar.zst godot-61026e62bf8659a4ffe4fc1b5cbd404d3e25adeb.zip | |
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.
Diffstat (limited to 'platform/javascript')
| -rw-r--r-- | platform/javascript/engine.js | 26 | ||||
| -rw-r--r-- | platform/javascript/os_javascript.cpp | 1 |
2 files changed, 15 insertions, 12 deletions
diff --git a/platform/javascript/engine.js b/platform/javascript/engine.js index bca1851f4..8f22e4166 100644 --- a/platform/javascript/engine.js +++ b/platform/javascript/engine.js @@ -138,18 +138,6 @@ } var actualCanvas = this.rtenv.canvas; - var testContext = false; - var testCanvas; - try { - testCanvas = document.createElement('canvas'); - testContext = testCanvas.getContext('webgl2') || testCanvas.getContext('experimental-webgl2'); - } catch (e) {} - if (!testContext) { - throw new Error("WebGL 2 not available"); - } - testCanvas = null; - testContext = null; - // canvas can grab focus on click if (actualCanvas.tabIndex < 0) { actualCanvas.tabIndex = 0; @@ -273,6 +261,20 @@ Engine.RuntimeEnvironment = engine.RuntimeEnvironment; + Engine.isWebGLAvailable = function(majorVersion = 1) { + + var testContext = false; + try { + var testCanvas = document.createElement('canvas'); + if (majorVersion === 1) { + testContext = testCanvas.getContext('webgl') || testCanvas.getContet('experimental-webgl'); + } else if (majorVersion === 2) { + testContext = testCanvas.getContext('webgl2') || testCanvas.getContet('experimental-webgl2'); + } + } catch (e) {} + return !!testContext; + }; + Engine.load = function(newBasePath) { if (newBasePath !== undefined) basePath = getBasePath(newBasePath); diff --git a/platform/javascript/os_javascript.cpp b/platform/javascript/os_javascript.cpp index ace0bdad6..cbfe99ba2 100644 --- a/platform/javascript/os_javascript.cpp +++ b/platform/javascript/os_javascript.cpp @@ -444,6 +444,7 @@ Error OS_JavaScript::initialize(const VideoMode &p_desired, int p_video_driver, break; } EMSCRIPTEN_WEBGL_CONTEXT_HANDLE ctx = emscripten_webgl_create_context(NULL, &attributes); + ERR_EXPLAIN("WebGL " + itos(attributes.majorVersion) + ".0 not available"); ERR_FAIL_COND_V(emscripten_webgl_make_context_current(ctx) != EMSCRIPTEN_RESULT_SUCCESS, ERR_UNAVAILABLE); video_mode = p_desired; |
