dali-doc-demo.html
4.28 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
<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, "&");
//text = text.replace(/</g, "<");
//text = text.replace(/>/g, ">");
//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>