source: other-projects/playing-in-the-street/summer-2013/trunk/Playing-in-the-Street-WPF/Content/Web/KinectWorker-1.8.0.js@ 28897

Last change on this file since 28897 was 28897, checked in by davidb, 10 years ago

GUI front-end to server base plus web page content

File size: 2.2 KB
Line 
1// -----------------------------------------------------------------------
2// <copyright file="KinectWorker-1.8.0.js" company="Microsoft">
3// Copyright (c) Microsoft Corporation. All rights reserved.
4// </copyright>
5// -----------------------------------------------------------------------
6
7"use strict";
8
9var imageDataMap = {};
10
11// Associate a specified ImageData (from a canvas object) with the specified image name
12// .setImageData( imageName [, imageData] )
13//
14// imageName: Name used to refer to canvas ImageData object specified.
15// imageData: Canvas ImageData to associate with image name. If null, any previously
16// existing association is removed.
17function setImageData(imageName, imageData) {
18 if ((imageData == null) && imageDataMap.hasOwnProperty(imageName)) {
19 delete imageDataMap[imageName];
20 } else {
21 imageDataMap[imageName] = imageData;
22 }
23}
24
25
26// Copy the information in the specified image ArrayBuffer to the ImageData associated
27// with the specified name and post the ImageData back to UI thread.
28// .processImageData( imageName, imageData )
29//
30// imageName: Name used to refer to canvas ImageData object to receive data from
31// ArrayBuffer.
32// imageBuffer: ArrayBuffer containing image data to copy to canvas ImageData structure.
33function processImageData(imageName, imageBuffer) {
34 if (!imageDataMap.hasOwnProperty(imageName)) {
35 self.postMessage({ "message": "notProcessed", "imageName": imageName});
36 return;
37 }
38
39 var imageData = imageDataMap[imageName];
40 var pixelArray = imageData.data;
41 var newPixelData = new Uint8Array(imageBuffer);
42
43 for (var i = 0; i < pixelArray.length; ++i) {
44 pixelArray[i] = newPixelData[i];
45 }
46
47 self.postMessage({ "message": "imageReady", "imageName": imageName, "imageData": imageData });
48}
49
50// thread message handler
51addEventListener('message', function (event) {
52 switch (event.data.message) {
53 case "setImageData":
54 setImageData(event.data.imageName, event.data.imageData);
55 break;
56
57 case "processImageData":
58 processImageData(event.data.imageName, event.data.imageBuffer);
59 break;
60 }
61});
Note: See TracBrowser for help on using the repository browser.