1311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff<!DOCTYPE html> 264fe2324403ea78dbd781073f4e5b34768676e2copenvcdiff@gmail.com<html> 364fe2324403ea78dbd781073f4e5b34768676e2copenvcdiff@gmail.com <!-- 464fe2324403ea78dbd781073f4e5b34768676e2copenvcdiff@gmail.com Copyright 2013 Google Inc. 564fe2324403ea78dbd781073f4e5b34768676e2copenvcdiff@gmail.com 664fe2324403ea78dbd781073f4e5b34768676e2copenvcdiff@gmail.com Use of this source code is governed by a BSD-style license that can be 764fe2324403ea78dbd781073f4e5b34768676e2copenvcdiff@gmail.com found in the LICENSE file. 864fe2324403ea78dbd781073f4e5b34768676e2copenvcdiff@gmail.com --> 964fe2324403ea78dbd781073f4e5b34768676e2copenvcdiff@gmail.com<head> 1064fe2324403ea78dbd781073f4e5b34768676e2copenvcdiff@gmail.com 1164fe2324403ea78dbd781073f4e5b34768676e2copenvcdiff@gmail.com <title>Skia Sample App</title> 1264fe2324403ea78dbd781073f4e5b34768676e2copenvcdiff@gmail.com 1364fe2324403ea78dbd781073f4e5b34768676e2copenvcdiff@gmail.com <script type="text/javascript"> 1464fe2324403ea78dbd781073f4e5b34768676e2copenvcdiff@gmail.com "use strict"; 1564fe2324403ea78dbd781073f4e5b34768676e2copenvcdiff@gmail.com 1664fe2324403ea78dbd781073f4e5b34768676e2copenvcdiff@gmail.com var SkiaModule = null; // Global application object. 17311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 18311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff // Force a re-draw of the given element. 19311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff function refresh(elem) { 20311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff var old_display_style = elem.style.display; 21311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff elem.style.display = "none"; 22311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff elem.style.display = old_display_style; 23311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff } 24311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 25311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff // When the module loads, begin running the application. 26311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff function moduleDidLoad() { 27311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff SkiaModule = document.getElementById("skia_nacl"); 28311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff run(); 29d18457863096b3685e56f5a8919959f6afbdb121openvcdiff } 30311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 31311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff function handleMessage(message_event) { 32311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff var skdebugf_cmd = "SkDebugf:"; 33311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff if (message_event.data.indexOf(skdebugf_cmd) == 0) { 34311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff var msg_contents = message_event.data.slice(skdebugf_cmd.length) 35311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff console.log("Skia: " + msg_contents); 36311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff } else { 37311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff alert(message_event.data); 38311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff } 39311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff } 40311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 41311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff // Run the application. 42311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff function run() { 43311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff if (SkiaModule) { 44311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff var cmd = "init"; 45311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff SkiaModule.postMessage(cmd); 46311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff } else { 47311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff alert("The Skia module has not properly loaded..."); 48d18457863096b3685e56f5a8919959f6afbdb121openvcdiff } 49d18457863096b3685e56f5a8919959f6afbdb121openvcdiff } 50311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff </script> 51311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff</head> 52311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff<body> 53311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 54311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff<h1>Skia Sample App</h1> 55311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff<p> 56311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff <div id="listener"> 57311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff <script type="text/javascript"> 58311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff var listener = document.getElementById('listener'); 59311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff listener.addEventListener('load', moduleDidLoad, true); 60311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff listener.addEventListener('message', handleMessage, true); 61311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff </script> 62311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff 63311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff <embed name="nacl_module" 64311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff id="skia_nacl" 65311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff width=0 height=0 66311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff src="SampleApp.nmf" 67d18457863096b3685e56f5a8919959f6afbdb121openvcdiff type="application/x-nacl" /> 68d18457863096b3685e56f5a8919959f6afbdb121openvcdiff </div> 69311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff</p> 70311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff</body> 71311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff</html> 72311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff