dali-doc-demo.html 4.28 KB
<html>
	 <body>

		  <script>
			function native2ascii(str) {
				 "use strict";
				 // really this function allows only GLSL permittable chars
				 // It should probably raise if it changes the source.
				 var out = "";
				 for (var i = 0; i < str.length; i++) {
					  if ( 0x20 <= str.charCodeAt(i) && str.charCodeAt(i) <= 0x7E) {
							// normal characters
							out += str.charAt(i);
					  } else if( 0x9 <= str.charCodeAt(i) && str.charCodeAt(i) <= 0xD) {
							// new lines and tabs
							out += str.charAt(i);
					  }
				 }
				 return out;
			}

			function clearAndEval = function(code) {
				 "use strict";
				 var ascii = native2ascii(code);
				 clear();
				 // as of ecma5 an indirect call like this is in global scope
				 var globalEval = eval;
				 globalEval(ascii);
			};
		  </script>

		  <h1>Dali Docs</h1>

		  <code>
				mScript = Dali::Toolkit::Script::New();
				mScript.ExecuteFile( mScriptFileName);
		  </code>
		  <input id="clickMe" type="button" value="clickme"
					onclick="doFunction();"/>

        <canvas class="emscripten" id="canvas" oncontextmenu="event.preventDefault()" width="600" height="800" style="background-color: black;"></canvas>

		  <script type="text/javascript">  //  emscripten

			var statusElement = document.getElementById('status');
			var progressElement = document.getElementById('progress');

			var Module = {
				 doNotCaptureKeyboard:true,
				 preRun: [],
				 postRun: [],
				 print: (function() {
					  var element = document.getElementById('output');
					  if (element) element.value = ''; // clear browser cache
					  return function(text) {
							text = Array.prototype.slice.call(arguments).join(' ');
							// These replacements are necessary if you render to raw HTML
							//text = text.replace(/&/g, "&amp;");
							//text = text.replace(/</g, "&lt;");
							//text = text.replace(/>/g, "&gt;");
							//text = text.replace('\n', '<br>', 'g');
							console.log("STDOUT:", text);
							if (element) {
								 element.value += text + "\n";
								 element.scrollTop = element.scrollHeight; // focus on bottom
							}
					  };
				 })(),
				 printErr: function(text) {
					  text = Array.prototype.slice.call(arguments).join(' ');
					  if (0) { // XXX disabled for safety typeof dump == 'function') {
							dump(text + '\n'); // fast, straight to the real console
					  } else {
							console.error("STDERR:", text);
					  }
				 },
				 canvas: document.getElementById('canvas'),
				 setStatus: function(text) {
					  if (!Module.setStatus.last) Module.setStatus.last = { time: Date.now(), text: '' };
					  if (text === Module.setStatus.text) return;
					  var m = text.match(/([^(]+)\((\d+(\.\d+)?)\/(\d+)\)/);
					  var now = Date.now();
					  if (m && now - Date.now() < 30) return; // if this is a progress update, skip it if too soon
					  if (m) {
							text = m[1];
							progressElement.value = parseInt(m[2])*100;
							progressElement.max = parseInt(m[4])*100;
							progressElement.hidden = false;
					  } else {
							progressElement.value = null;
							progressElement.max = null;
							progressElement.hidden = true;
					  }
					  statusElement.innerHTML = text;
				 },
				 totalDependencies: 0,
				 monitorRunDependencies: function(left) {
					  this.totalDependencies = Math.max(this.totalDependencies, left);
					  Module.setStatus(left ? 'Preparing... (' + (this.totalDependencies-left) + '/' + this.totalDependencies + ')' : 'All downloads complete.');
				 },

				 postRun: function () {
					  // postRun; so that dali-emscripten.js is loaded first
					  // (postMainLoop to run all the time)
					  var s = document.createElement("script");
					  s.src = "dali-wrapper.js";
					  document.body.appendChild(s);
				 },

				 postDaliWrapperRun: function() {
				 }
			}; // Module

         Module.setStatus('Downloading...');
         window.onerror = function() {
             Module.setStatus('Exception thrown, see JavaScript console');
             Module.setStatus = function(text) {
                 if (text) Module.printErr('[post-exception status] ' + text);
             };
         };

		  </script>

		  <!-- load dali-emscripten.js. Then use dali-emscripten.js::postRun callback function (see postRun above) -->
	     <script async type="text/javascript" src="dali-emscripten.js"></script>

	 </body>
</html>