Index: native_client_sdk/src/examples/api/graphics_3d/example.js |
diff --git a/native_client_sdk/src/examples/api/graphics_3d/example.js b/native_client_sdk/src/examples/api/graphics_3d/example.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..edd8e16be7862e37024f350b65053e5e17be2eab |
--- /dev/null |
+++ b/native_client_sdk/src/examples/api/graphics_3d/example.js |
@@ -0,0 +1,41 @@ |
+// Copyright (c) 2013 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+function $(id) { |
+ return document.getElementById(id); |
+} |
+ |
+function postAngleMessage() { |
+ var xAngle = parseFloat($('xAngle').value); |
+ var yAngle = parseFloat($('yAngle').value); |
+ common.naclModule.postMessage([xAngle, yAngle]); |
+} |
+ |
+// Add event listeners after the NaCl module has loaded. These listeners will |
+// forward messages to the NaCl module via postMessage() |
+function attachListeners() { |
+ $('xAngle').addEventListener('change', postAngleMessage); |
+ $('yAngle').addEventListener('change', postAngleMessage); |
+ $('animateOff').addEventListener('click', function() { |
+ $('animateOn').checked = ''; |
+ common.naclModule.postMessage(false); |
+ }); |
+ $('animateOn').addEventListener('click', function() { |
+ $('animateOff').checked = ''; |
+ common.naclModule.postMessage(true); |
+ }); |
+} |
+ |
+// Handle a message coming from the NaCl module. |
+function handleMessage(event) { |
+ if (!(event.data instanceof Array)) |
+ return; |
+ if (event.data.length != 2) |
+ return; |
+ |
+ var xAngle = event.data[0]; |
+ var yAngle = event.data[1]; |
+ $('xAngle').value = xAngle; |
+ $('yAngle').value = yAngle; |
+} |