Index: native_client_sdk/src/examples/demo/voronoi/example.js |
=================================================================== |
--- native_client_sdk/src/examples/demo/voronoi/example.js (revision 0) |
+++ native_client_sdk/src/examples/demo/voronoi/example.js (revision 0) |
@@ -0,0 +1,81 @@ |
+// 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. |
+ |
+// Add event listeners after the NaCl module has loaded. These listeners will |
+// forward messages to the NaCl module via postMessage() |
+function moduleDidLoad() { |
binji
2013/05/24 21:47:55
we usually use attachListeners() for this. See the
nfullagar1
2013/05/28 23:11:50
Done.
|
+ document.getElementById("benchmark").addEventListener("click", |
binji
2013/05/24 21:47:55
single quotes for strings
nfullagar1
2013/05/28 23:11:50
Done.
|
+ function() { |
+ common.naclModule.postMessage("run benchmark"); |
+ alert("Please wait while running benchmark.") |
binji
2013/05/24 21:47:55
alert() doesn't work in packaged apps.
nfullagar1
2013/05/28 23:11:50
Ok, changed to update Status: while benchmarking
|
+ }, false); |
binji
2013/05/24 21:47:55
", false" shouldn't be needed. We don't need to ca
nfullagar1
2013/05/28 23:11:50
Done.
|
+ document.getElementById("draw_points").addEventListener("click", |
binji
2013/05/24 21:47:55
we use camelCase for ids
nfullagar1
2013/05/28 23:11:50
Done.
|
+ function() { |
+ var checked = document.getElementById("draw_points").checked; |
+ if (checked) |
+ common.naclModule.postMessage("with points"); |
+ else |
+ common.naclModule.postMessage("without points"); |
+ }, false); |
+ document.getElementById("draw_interiors").addEventListener("click", |
+ function() { |
+ var checked = document.getElementById("draw_interiors").checked; |
+ if (checked) |
+ common.naclModule.postMessage("with interiors"); |
+ else |
+ common.naclModule.postMessage("without interiors"); |
+ }, false); |
+ document.getElementById("one").addEventListener("click", |
binji
2013/05/24 21:47:55
this could probably be made a lot more obvious by
nfullagar1
2013/05/28 23:11:50
Done.
|
+ function() { |
+ common.naclModule.postMessage("threads: 1"); |
+ }, false); |
+ document.getElementById("two").addEventListener("click", |
+ function() { |
+ common.naclModule.postMessage("threads: 2"); |
+ }, false); |
+ document.getElementById("four").addEventListener("click", |
+ function() { |
+ common.naclModule.postMessage("threads: 4"); |
+ }, false); |
+ document.getElementById("six").addEventListener("click", |
+ function() { |
+ common.naclModule.postMessage("threads: 6"); |
+ }, false); |
+ document.getElementById("eight").addEventListener("click", |
+ function() { |
+ common.naclModule.postMessage("threads: 8"); |
+ }, false); |
+ document.getElementById("twelve").addEventListener("click", |
+ function() { |
+ common.naclModule.postMessage("threads: 12"); |
+ }, false); |
+ document.getElementById("sixteen").addEventListener("click", |
+ function() { |
+ common.naclModule.postMessage("threads: 16"); |
+ }, false); |
+ document.getElementById("twentyfour").addEventListener("click", |
+ function() { |
+ common.naclModule.postMessage("threads: 24"); |
+ }, false); |
+ document.getElementById("thirtytwo").addEventListener("click", |
+ function() { |
+ common.naclModule.postMessage("threads: 32"); |
+ }, false); |
+ |
+ document.getElementById("point_range").addEventListener("change", |
+ function() { |
+ var value = document.getElementById("point_range").value; |
+ common.naclModule.postMessage("points: " + value); |
+ document.getElementById("point_count").textContent = value + " points"; |
+ }, false); |
+} |
+ |
+// Handle a message coming from the NaCl module. |
+// In the Voronoi example, the only message will be the benchmark result. |
+function handleMessage(message_event) { |
+ var x = Math.round(message_event.data * 1000) / 1000; |
binji
2013/05/24 21:47:55
You can just use parseFloat(message_event.data) to
nfullagar1
2013/05/28 23:11:50
This arrives as a float, and we're rounding to 3 d
binji
2013/05/28 23:37:50
Seems to from my tests in the Chrome console:
(3.0
nfullagar1
2013/05/29 01:19:53
I should have said toFixed doesn't round 'as expec
|
+ document.getElementById("result").textContent = |
+ "Result: " + x.toFixed(3) + " seconds"; |
+} |
+ |