annotate Samples/WebAssembly/RtViewer/RtViewerWasmApp.js @ 1384:24bcff8ea58f

RtViewer : SDL ok. Preparation for WASM builds ongoing
author Benjamin Golinvaux <bgo@osimis.io>
date Mon, 27 Apr 2020 10:01:48 +0200
parents
children 27e0a00bd3e8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1384
24bcff8ea58f RtViewer : SDL ok. Preparation for WASM builds ongoing
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
1 // Check support for WebAssembly
24bcff8ea58f RtViewer : SDL ok. Preparation for WASM builds ongoing
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
2 if (!('WebAssembly' in window)) {
24bcff8ea58f RtViewer : SDL ok. Preparation for WASM builds ongoing
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
3 alert('Sorry, your browser does not support WebAssembly :(');
24bcff8ea58f RtViewer : SDL ok. Preparation for WASM builds ongoing
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
4 } else {
24bcff8ea58f RtViewer : SDL ok. Preparation for WASM builds ongoing
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
5
24bcff8ea58f RtViewer : SDL ok. Preparation for WASM builds ongoing
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
6 // Wait for the module to be loaded (the event "WebAssemblyLoaded"
24bcff8ea58f RtViewer : SDL ok. Preparation for WASM builds ongoing
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
7 // must be emitted by the "main" function)
24bcff8ea58f RtViewer : SDL ok. Preparation for WASM builds ongoing
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
8 window.addEventListener('WebAssemblyLoaded', function() {
24bcff8ea58f RtViewer : SDL ok. Preparation for WASM builds ongoing
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
9
24bcff8ea58f RtViewer : SDL ok. Preparation for WASM builds ongoing
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
10 // Loop over the GET arguments
24bcff8ea58f RtViewer : SDL ok. Preparation for WASM builds ongoing
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
11 var parameters = window.location.search.substr(1);
24bcff8ea58f RtViewer : SDL ok. Preparation for WASM builds ongoing
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
12 if (parameters != null && parameters != '') {
24bcff8ea58f RtViewer : SDL ok. Preparation for WASM builds ongoing
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
13 var tokens = parameters.split('&');
24bcff8ea58f RtViewer : SDL ok. Preparation for WASM builds ongoing
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
14 for (var i = 0; i < tokens.length; i++) {
24bcff8ea58f RtViewer : SDL ok. Preparation for WASM builds ongoing
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
15 var arg = tokens[i].split('=');
24bcff8ea58f RtViewer : SDL ok. Preparation for WASM builds ongoing
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
16 if (arg.length == 2) {
24bcff8ea58f RtViewer : SDL ok. Preparation for WASM builds ongoing
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
17
24bcff8ea58f RtViewer : SDL ok. Preparation for WASM builds ongoing
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
18 // Send each GET argument to WebAssembly
24bcff8ea58f RtViewer : SDL ok. Preparation for WASM builds ongoing
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
19 Module.ccall('SetArgument', null, [ 'string', 'string' ],
24bcff8ea58f RtViewer : SDL ok. Preparation for WASM builds ongoing
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
20 [ arg[0], decodeURIComponent(arg[1]) ]);
24bcff8ea58f RtViewer : SDL ok. Preparation for WASM builds ongoing
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
21 }
24bcff8ea58f RtViewer : SDL ok. Preparation for WASM builds ongoing
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
22 }
24bcff8ea58f RtViewer : SDL ok. Preparation for WASM builds ongoing
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
23 }
24bcff8ea58f RtViewer : SDL ok. Preparation for WASM builds ongoing
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
24
24bcff8ea58f RtViewer : SDL ok. Preparation for WASM builds ongoing
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
25 // Inform the WebAssembly module that it can start
24bcff8ea58f RtViewer : SDL ok. Preparation for WASM builds ongoing
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
26 Module.ccall('Initialize', null, null, null);
24bcff8ea58f RtViewer : SDL ok. Preparation for WASM builds ongoing
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
27 });
24bcff8ea58f RtViewer : SDL ok. Preparation for WASM builds ongoing
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
28 }