~ubuntu-branches/ubuntu/vivid/emscripten/vivid

« back to all changes in this revision

Viewing changes to demos/webgl/demo_old.html

  • Committer: Package Import Robot
  • Author(s): Sylvestre Ledru
  • Date: 2013-05-02 13:11:51 UTC
  • Revision ID: package-import@ubuntu.com-20130502131151-q8dvteqr1ef2x7xz
Tags: upstream-1.4.1~20130504~adb56cb
ImportĀ upstreamĀ versionĀ 1.4.1~20130504~adb56cb

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<html>
 
2
    <head>
 
3
      <title>Bullet/WebGL Demo</title>
 
4
      <script type="text/javascript" src="glge_math.js"></script>
 
5
      <script type="text/javascript" src="glge.js"></script>
 
6
      <script type="text/javascript" src="bullet.js"></script>
 
7
      <script ty[e="text/javascript" src="bullet_demo.js"></script>
 
8
      <style type="text/css">
 
9
        body { background-color: #eee; }
 
10
      </style>
 
11
    </head>
 
12
    <body>
 
13
      <center>
 
14
        <form onsubmit="run([]); prepareBulletDemo(); return false">
 
15
          <input type="submit" value="restart">
 
16
        </form>
 
17
 
 
18
        <canvas id="canvas" width="500" height="500"></canvas>
 
19
        <script type="text/javascript">
 
20
          var doc = new GLGE.Document();
 
21
 
 
22
          doc.onLoad = function() {
 
23
            prepareBulletDemo();
 
24
 
 
25
            var boxes = [];
 
26
 
 
27
            function simulatePhysics(diff) {
 
28
              simulateBulletDemo(diff);
 
29
              for (var i = 0; i < 5; i++)
 
30
                applyBulletObject(boxes[i], readBulletObject(i+1));
 
31
            }
 
32
 
 
33
            var renderer = new GLGE.Renderer(document.getElementById("canvas"));
 
34
            var scene = doc.getElement("mainscene");
 
35
            renderer.setScene(scene);
 
36
 
 
37
            var mesh = doc.getElement("Box");
 
38
            for (var i = 0; i < 5; i++) {
 
39
              var box = new GLGE.Object('box_' + i);
 
40
              box.setMesh(mesh);
 
41
              box.setMaterial(doc.getElement("boxmaterial"+(i+1)));
 
42
              box.setId('box_' + i);
 
43
              box.setLoc(i*2, 10, 0);
 
44
              box.setScale(1, 1, 1);
 
45
              scene.addChild(box);
 
46
              boxes.push(box);
 
47
            }
 
48
 
 
49
            var t = Date.now();
 
50
            var lastHUD = 0;
 
51
            var diffs = 0, num = 0;
 
52
            function render() {
 
53
              var now = Date.now();
 
54
              var diff = (now - t)/1000;
 
55
 
 
56
              // Simulate
 
57
              simulatePhysics(diff);
 
58
 
 
59
              // Render
 
60
              renderer.render();
 
61
 
 
62
              // Show FPS
 
63
              diffs += diff;
 
64
              num++;
 
65
              if (now - lastHUD > 250) {
 
66
                document.getElementById('out').innerHTML = '<b>FPS:' + Math.ceil(1/(diffs/num)) + '</b>';
 
67
                lastHUD = now;
 
68
                diffs = 0;
 
69
                num = 0;
 
70
              }
 
71
              t = now;
 
72
            }
 
73
 
 
74
            setInterval(render, 1000/100);
 
75
          }
 
76
 
 
77
          doc.load("http://127.0.0.1:8991/scene.xml");
 
78
        </script>
 
79
        <br><br>
 
80
        <div id="out">waka</div>
 
81
        <br>
 
82
        <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.
 
83
        <br><br>
 
84
        Tested with Firefox 4 nightly builds (minefield) and Chrome 7 (requires --enable-webgl on the commandline); should work with any
 
85
        <a href="http://www.khronos.org/webgl/wiki/Getting_a_WebGL_Implementation">browser that supports WebGL</a>
 
86
      </center>
 
87
    </body>
 
88
</html>
 
89