| // 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 moduleDidLoad() { |
| } |
| |
| function postThreadFunc(numThreads) { |
| return function () { |
| common.naclModule.postMessage({'message' : 'set_threads', |
| 'value' : numThreads}); |
| } |
| } |
| |
| // Add event listeners after the NaCl module has loaded. These listeners will |
| // forward messages to the NaCl module via postMessage() |
| function attachListeners() { |
| document.getElementById('benchmark').addEventListener('click', |
| function() { |
| common.naclModule.postMessage({'message' : 'run_benchmark'}); |
| common.updateStatus('BENCHMARKING... (please wait)'); |
| }); |
| document.getElementById('drawPoints').addEventListener('click', |
| function() { |
| var checked = document.getElementById('drawPoints').checked; |
| common.naclModule.postMessage({'message' : 'draw_points', |
| 'value' : checked}); |
| }); |
| document.getElementById('drawInteriors').addEventListener('click', |
| function() { |
| var checked = document.getElementById('drawInteriors').checked; |
| common.naclModule.postMessage({'message' : 'draw_interiors', |
| 'value' : checked}); |
| }); |
| var threads = [0, 1, 2, 4, 6, 8, 12, 16, 24, 32]; |
| for (var i = 0; i < threads.length; i++) { |
| document.getElementById('radio' + i).addEventListener('click', |
| postThreadFunc(threads[i])); |
| } |
| document.getElementById('pointRange').addEventListener('input', |
| function() { |
| var value = parseFloat(document.getElementById('pointRange').value); |
| common.naclModule.postMessage({'message' : 'set_points', |
| 'value' : value}); |
| document.getElementById('pointCount').textContent = value + ' points'; |
| }); |
| } |
| |
| // Handle a message coming from the NaCl module. |
| // In the Voronoi example, the only message will be the benchmark result. |
| function handleMessage(message_event) { |
| if (message_event.data['message'] == 'benchmark_result') { |
| var x = (Math.round(message_event.data['value'] * 1000) / 1000).toFixed(3); |
| document.getElementById('result').textContent = |
| 'Result: ' + x + ' seconds'; |
| common.updateStatus('SUCCESS') |
| } |
| } |
| |