官术网_书友最值得收藏!

Summary

In this chapter, we discussed the Emscripten minimal shell HTML file, what its various components are, and how they work. We also wrote about what parts of the file we can do without, if we are not using our shell to generate canvas code. You learned about the Module object, and how it is the interface that uses the JavaScript glue code to tie the JavaScript in our HTML and our WebAssembly together. We then created a new WebAssembly module that contained functions we exported to allow JavaScript to use Module.cwrap to create JavaScript functions we could then call from our DOM that executes our WebAssembly functions.

We created a brand new HTML shell file that used some of the Module code from the Emscripten minimal shell, but rewrote the HTML and CSS of the original shell almost entirely. We were then able to compile that new C code and HTML shell file into a working WebAssembly app that was able to call WebAssembly functions from JavaScript, as well as call JavaScript functions from WebAssembly.

We discussed the benefits of using the HTML5 canvas element, and the differences between immediate and retained mode graphics. We also explained why it makes sense for games and other graphics-intensive tasks to use immediate mode instead of retained mode.

We then created a shell file to make use of the HTML5 canvas element. We added JavaScript code to draw an image to the canvas and wrote C code that used WebAssembly to modify the position of that image on the canvas every frame creating the appearance of a moving spaceship on the HTML5 canvas.

In the next chapter, we will introduce you to WebGL, what it is, and how it improves graphics rendering on the web.

主站蜘蛛池模板: 石泉县| 宿州市| 法库县| 博野县| 永定县| 阿拉善盟| 永和县| 苗栗市| 台中县| 北海市| 高雄县| 建瓯市| 文登市| 泰宁县| 施秉县| 鞍山市| 萝北县| 油尖旺区| 湘阴县| 定边县| 十堰市| 丹棱县| 来宾市| 平陆县| 静海县| 许昌县| 新化县| 习水县| 南城县| 奉贤区| 邻水| 大宁县| 防城港市| 新宁县| 安塞县| 临安市| 同江市| 门源| 望谟县| 勐海县| 南部县|