diff options
author | Alon Zakai <alonzakai@gmail.com> | 2011-05-01 12:13:55 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2011-05-01 12:13:55 -0700 |
commit | 954b5d83dac515007883af39c838406d31f468e9 (patch) | |
tree | 4aff5b02026462ec4bd87429a92f665aa5c085ed /demos/webgl/demo_old.html | |
parent | ab754ce645f4d89fa92e25545523cc9c3c2eff21 (diff) |
prepare for new bullet demo
Diffstat (limited to 'demos/webgl/demo_old.html')
-rw-r--r-- | demos/webgl/demo_old.html | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/demos/webgl/demo_old.html b/demos/webgl/demo_old.html new file mode 100644 index 00000000..447dace6 --- /dev/null +++ b/demos/webgl/demo_old.html @@ -0,0 +1,89 @@ +<html> + <head> + <title>Bullet/WebGL Demo</title> + <script type="text/javascript" src="glge_math.js"></script> + <script type="text/javascript" src="glge.js"></script> + <script type="text/javascript" src="bullet.js"></script> + <script ty[e="text/javascript" src="bullet_demo.js"></script> + <style type="text/css"> + body { background-color: #eee; } + </style> + </head> + <body> + <center> + <form onsubmit="run([]); prepareBulletDemo(); return false"> + <input type="submit" value="restart"> + </form> + + <canvas id="canvas" width="500" height="500"></canvas> + <script type="text/javascript"> + var doc = new GLGE.Document(); + + doc.onLoad = function() { + prepareBulletDemo(); + + var boxes = []; + + function simulatePhysics(diff) { + simulateBulletDemo(diff); + for (var i = 0; i < 5; i++) + applyBulletObject(boxes[i], readBulletObject(i+1)); + } + + var renderer = new GLGE.Renderer(document.getElementById("canvas")); + var scene = doc.getElement("mainscene"); + renderer.setScene(scene); + + var mesh = doc.getElement("Box"); + for (var i = 0; i < 5; i++) { + var box = new GLGE.Object('box_' + i); + box.setMesh(mesh); + box.setMaterial(doc.getElement("boxmaterial"+(i+1))); + box.setId('box_' + i); + box.setLoc(i*2, 10, 0); + box.setScale(1, 1, 1); + scene.addChild(box); + boxes.push(box); + } + + var t = Date.now(); + var lastHUD = 0; + var diffs = 0, num = 0; + function render() { + var now = Date.now(); + var diff = (now - t)/1000; + + // Simulate + simulatePhysics(diff); + + // Render + renderer.render(); + + // Show FPS + diffs += diff; + num++; + if (now - lastHUD > 250) { + document.getElementById('out').innerHTML = '<b>FPS:' + Math.ceil(1/(diffs/num)) + '</b>'; + lastHUD = now; + diffs = 0; + num = 0; + } + t = now; + } + + setInterval(render, 1000/100); + } + + doc.load("http://127.0.0.1:8991/scene.xml"); + </script> + <br><br> + <div id="out">waka</div> + <br> + <b>Bullet/WebGL Demo</b>: The <a href="http://www.bulletphysics.com">Bullet physics engine</a>, compiled from C++ to JavaScript using <a href="http://emscripten.org">Emscripten</a>, with rendering by <a href="http://glge.org">GLGE</a> using WebGL. + <br><br> + Tested with Firefox 4 nightly builds (minefield) and Chrome 7 (requires --enable-webgl on the commandline); should work with any + <a href="http://www.khronos.org/webgl/wiki/Getting_a_WebGL_Implementation">browser that supports WebGL</a> + </center> + </body> +</html> + |