aboutsummaryrefslogtreecommitdiff
path: root/src/proxyClient.js
blob: f102ed8600bb54410a911d6bad2f1d6e7f5e40cd (plain)
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
// proxy to/from worker

Module.ctx = Module.canvas.getContext('2d');

var worker = new Worker('{{{ filename }}}.js');

worker.onmessage = function(event) {
  var data = event.data;
  switch (data.target) {
    case 'window': {
      window[data.method]();
      break;
    }
    case 'canvas': {
      switch (data.op) {
        case 'resize': {
          Module.canvas.width = data.width;
          Module.canvas.height = data.height;
          Module.canvasData = Module.ctx.getImageData(0, 0, data.width, data.height);
          break;
        }
        case 'render': {
          Module.canvasData.data.set(data.image.data);
          Module.ctx.putImageData(Module.canvasData, 0, 0);
          break;
        }
        default: throw 'eh?';
      }
      break;
    }
    default: throw 'what?';
  }
};