Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.
 
 
 

191 Zeilen
7.2 KiB

  1. <!doctype html>
  2. <html lang="en-us">
  3. <head>
  4. <meta charset="utf-8">
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  6. <title>YOUR PAGE NAME HERE</title>
  7. <style>
  8. .emscripten
  9. {
  10. padding-right: 0;
  11. margin-left: auto;
  12. margin-right: auto;
  13. display: block;
  14. }
  15. textarea.emscripten
  16. {
  17. font-family: monospace;
  18. width: 80%;
  19. }
  20. div.emscripten
  21. {
  22. text-align: center;
  23. }
  24. div.emscripten_border
  25. {
  26. border: 1px solid black;
  27. position: absolute;
  28. left: 0px;
  29. top: 0px;
  30. }
  31. /* the canvas *must not* have any border or padding, or mouse coords will be wrong */
  32. canvas.emscripten
  33. {
  34. border: 0px none;
  35. }
  36. </style>
  37. </head>
  38. <body>
  39. <div class="emscripten_border" id="id_div_embed_data">
  40. <canvas class="emscripten" id="id_cvas_render" oncontextmenu="event.preventDefault()"></canvas>
  41. </div>
  42. <!-- this part is a little weird, I don't really know what to do with it. -->
  43. <div class="emscripten">
  44. <input type="checkbox" id="id_ckbox_resize">Resize canvas
  45. <input type="checkbox" id="id_ckbox_pointer_lock" checked>Lock/hide mouse pointer
  46. &nbsp;&nbsp;&nbsp;
  47. <input type="button" value="Fullscreen" onclick="ClickFullscreen()">
  48. </div>
  49. <textarea class="emscripten" id="id_txt_output" rows="8"> </textarea>
  50. <script type='text/javascript'>
  51. // connect to canvas
  52. var Module =
  53. {
  54. output: document.getElementById('id_txt_output'),
  55. canvas: document.getElementById('id_cvas_render'),
  56. preRun: [],
  57. postRun: [],
  58. clickFullsreen: function()
  59. {
  60. Module.requestFullScreen(document.getElementById('id_ckbox_pointer_lock').checked,
  61. document.getElementById('id_ckbox_resize').checked);
  62. },
  63. print: (function()
  64. {
  65. if (this.output)
  66. {
  67. this.output.value = ''; // clear browser cache
  68. return function(text)
  69. {
  70. this.text = Array.prototype.slice.call(arguments).join(' ');
  71. // These replacements are necessary if you render to raw HTML
  72. /*
  73. text = text.replace(/&/g, "&amp;");
  74. text = text.replace(/</g, "&lt;");
  75. text = text.replace(/ >/g, "&gt;");
  76. text = text.replace('\n', '<br>', 'g');
  77. */
  78. this.output.value += text + "\n";
  79. this.output.scrollTop = 99999; // focus on bottom
  80. };
  81. }
  82. else
  83. return '';
  84. })(),
  85. printErr: function(text)
  86. {
  87. text = Array.prototype.slice.call(arguments).join(' ');
  88. if (0) // XXX disabled for safety typeof dump == 'function')
  89. dump(text + '\n'); // fast, straight to the real console
  90. else
  91. console.log(text);
  92. },
  93. //Load Status handling
  94. setStatus: function(text, new_value, new_max)
  95. {
  96. var tmp_status = '';
  97. var tmp_value = undefined;
  98. var tmp_max = undefined;
  99. var should_hide = false;
  100. //Clear any interval put on this Status.
  101. if (Module.setStatus.interval)
  102. clearInterval(Module.setStatus.interval);
  103. //If value and max have been set, directly go for the win.
  104. if (new_value != undefined && new_max != undefined)
  105. {
  106. tmp_status = text;
  107. tmp_value = new_value;
  108. tmp_max = new_max;
  109. }
  110. else
  111. //Else do the complicated stuff.
  112. {
  113. var m = text.match(/([^(]+)\((\d+(\.\d+)?)\/(\d+)\)/);
  114. if (m)
  115. {
  116. text = m[1];
  117. tmp_value = parseInt(m[2]) * 100;
  118. tmp_max = parseInt(m[4]) * 100;
  119. }
  120. else
  121. should_hide = true;
  122. }
  123. if (parent)
  124. {
  125. //parent.UpdateProgressBarValue(tmp_status, tmp_value, tmp_max);
  126. //parent.HideProgressStatus(should_hide);
  127. }
  128. },
  129. totalDependencies: 0,
  130. monitorRunDependencies:
  131. function(left)
  132. {
  133. this.totalDependencies = Math.max(this.totalDependencies, left);
  134. if (left)
  135. Module.setStatus('Downloading dependencies ', (this.totalDependencies - left), this.totalDependencies);
  136. else
  137. {
  138. Module.setStatus('All downloads complete.', 1, 1);
  139. parent.ModuleIsLive();
  140. }
  141. },
  142. //IMPORTANT : This is the C -> Javascript wraping, add your functions list here.
  143. wrapup_list: [ {src_obj: null, func_name: 'DoSendMessage', c_func_name: 'C_Send', return_var: 'number', args: ['string'] } ],
  144. do_wrapup: function()
  145. {
  146. for (var i = 0; i < this.wrapup_list.length; i++)
  147. {
  148. if (!this.wrapup_list[i].src_obj)
  149. this.wrapup_list[i].src_obj = this;
  150. this.wrapup_list[i].src_obj[this.wrapup_list[i].func_name] =
  151. cwrap(this.wrapup_list[i].c_func_name,
  152. this.wrapup_list[i].return_var,
  153. this.wrapup_list[i].args);
  154. }
  155. },
  156. //Module <-> Page communication setup
  157. SendMessage:function(message)
  158. {
  159. this.DoSendMessage(message);
  160. },
  161. ModuleSendMessage:function(message)
  162. {
  163. alert(message);
  164. }
  165. };
  166. </script>
  167. <!-- Copy this HTML in your site folder and put your built program script in the src. -->
  168. <script src="./meshviewer.em.js"></script>
  169. <!-- -->
  170. <script type='text/javascript'>
  171. //This call NEEDS TO BE after the .js include, because "cwrap" is set in it.
  172. Module.do_wrapup();
  173. //Parent communication datas
  174. function GetDivEmbed() { return document.getElementById('id_div_embed_data'); }
  175. function GetEmbedModule() { return Module; }
  176. parent.InitModuleVar();
  177. Module.setStatus('Please wait, calculating load balance ...', 0, 1);
  178. </script>
  179. </body>
  180. </html>