1bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com<!DOCTYPE html> 2bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com<html> 3bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com <!-- 4bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com Copyright 2013 Google Inc. 5bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com 6bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com Use of this source code is governed by a BSD-style license that can be 7bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com found in the LICENSE file. 8bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com --> 9bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com<head> 10bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com 11bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com <title>Skia Hello World</title> 12bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com 13bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com <script type="text/javascript"> 14bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com "use strict"; 15bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com 16bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com var SkiaModule = null; // Global application object. 17bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com 18bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com // Force a re-draw of the given element. 19bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com function refresh(elem) { 20bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com var old_display_style = elem.style.display; 21bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com elem.style.display = "none"; 22bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com elem.style.display = old_display_style; 23bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com } 24bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com 25bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com // When the module loads, begin running the application. 26bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com function moduleDidLoad() { 27bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com SkiaModule = document.getElementById("skia_nacl"); 28bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com run(); 29bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com } 30bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com 31bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com function handleMessage(message_event) { 32bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com var skdebugf_cmd = "SkDebugf:"; 33bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com if (message_event.data.indexOf(skdebugf_cmd) == 0) { 34bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com var msg_contents = message_event.data.slice(skdebugf_cmd.length) 35bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com console.log("Skia: " + msg_contents); 36bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com } else { 37bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com alert(message_event.data); 38bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com } 39bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com } 40bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com 41bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com // Run the application. 42bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com function run() { 43bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com if (SkiaModule) { 44bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com var cmd = "init"; 45bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com SkiaModule.postMessage(cmd); 46bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com } else { 47bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com alert("The Skia module has not properly loaded..."); 48bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com } 49bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com } 50bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com </script> 51bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com</head> 52bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com<body> 53bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com 54bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com<h1>Skia Hello World</h1> 55bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com<p> 56bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com <div id="listener"> 57bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com <script type="text/javascript"> 58bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com var listener = document.getElementById('listener'); 59bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com listener.addEventListener('load', moduleDidLoad, true); 60bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com listener.addEventListener('message', handleMessage, true); 61bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com </script> 62bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com 63bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com <embed name="nacl_module" 64bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com id="skia_nacl" 65bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com width=300 height=300 66bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com src="skhello.nmf" 67bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com type="application/x-nacl" /> 68bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com </div> 69bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com</p> 70bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com</body> 71bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com</html> 72