0031668: Visualization - WebGL sample doesn't work on Emscripten 1.39
[occt.git] / samples / webgl / occt-webgl-sample.html
index 80f7e6f..efec7db 100644 (file)
@@ -69,6 +69,7 @@ var Module =
   printErr: function(theText) {\r
     //var anElement = document.getElementById('output');\r
     //anElement.innerHTML += theText + "<br>";\r
+    console.warn(theText);\r
   },\r
   canvas: (function() {\r
     var aCanvas = document.getElementById('canvas');\r
@@ -85,11 +86,12 @@ fileInput.onchange = function()
   var aReader = new FileReader();\r
   aReader.onload = function()\r
   {\r
+    var aNameLenBytes = lengthBytesUTF8(aFile.name) + 1;\r
+    const aNameBuffer = Module._malloc(aNameLenBytes);\r
+    stringToUTF8(aFile.name, aNameBuffer, aNameLenBytes);\r
+\r
     var aDataArray = new Uint8Array (aReader.result);\r
-    var aNameArray = new Uint8Array (toUtf8Array (aFile.name));\r
     const aDataBuffer = Module._malloc(aDataArray.length);\r
-    const aNameBuffer = Module._malloc(aNameArray.length);\r
-    Module.HEAPU8.set(aNameArray, aNameBuffer);\r
     Module.HEAPU8.set(aDataArray, aDataBuffer);\r
     Module.ccall('onFileDataRead', null, ['number', 'number', 'number'], [aNameBuffer, aDataBuffer, aDataArray.length]);\r
     Module._free(aDataBuffer);\r
@@ -98,35 +100,6 @@ fileInput.onchange = function()
   };\r
   aReader.readAsArrayBuffer(aFile);\r
 };\r
-\r
-//! Convert string into UTF-8 array.\r
-function toUtf8Array (theText)\r
-{\r
-  var aRes = [];\r
-  for (var aCharIter = 0; aCharIter < theText.length; ++aCharIter)\r
-  {\r
-    var aCharCode = theText.charCodeAt (aCharIter);\r
-    if (aCharCode < 0x80)\r
-    {\r
-      aRes.push (aCharCode);\r
-    }\r
-    else if (aCharCode < 0x800)\r
-    {\r
-      aRes.push (0xc0 | (aCharCode >> 6), 0x80 | (aCharCode & 0x3f));\r
-    }\r
-    else if (aCharCode < 0xd800 || aCharCode >= 0xe000)\r
-    {\r
-      aRes.push (0xe0 | (aCharCode >> 12), 0x80 | ((aCharCode>>6) & 0x3f), 0x80 | (aCharCode & 0x3f));\r
-    }\r
-    else\r
-    {\r
-      ++aCharIter;\r
-      aCharCode = 0x10000 + (((aCharCode & 0x3ff)<<10) | (theText.charCodeAt (aCharIter) & 0x3ff));\r
-      aRes.push(0xf0 | (aCharCode >>18), 0x80 | ((aCharCode>>12) & 0x3f), 0x80 | ((aCharCode>>6) & 0x3f), 0x80 | (aCharCode & 0x3f));\r
-    }\r
-  }\r
-  return aRes;\r
-}\r
 </script>\r
 <script type="text/javascript" src="occt-webgl-sample.js" charset="utf-8"></script>\r
 </body>\r