Hands-On Game Development with WebAssembly
上QQ阅读APP看书,第一时间看更新

Immediate mode versus retained mode

Immediate mode is frequently thought of as the opposite of retained mode, but, in practice, when we write code for an immediate mode system, we may build on top of an API that gives us some of the functionality of a retained mode library. Immediate mode forces the developer to do all or most of the heavy lifting done by a retained mode library. We, as developers, are forced to manage our scene graph, and understand what graphical objects we need to render and how and when those objects must render. In short, it is a lot more work, but if done well, the payoff is a game that will render much faster than what is possible to render using the DOM.

You might be asking yourself right now: How do I go about using this Immediate Mode thingy? Enter the HTML5 Canvas! In 2004, Apple Inc. developed the canvas element as an immediate mode display tag for Apple's proprietary browser technology. The canvas partitions off a section of our web page, which allows us to render to that area using immediate mode rendering. That will enable us to render to a part of the DOM (the canvas) without requiring the browser to recalculate the position of all the elements from within the DOM. That allows the browser to optimize the rendering of the canvas further, using the computer's Graphical Processing Unit (GPU).