Renderer.html 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <title>JSDoc: Class: Renderer</title>
  6. <script src="scripts/prettify/prettify.js"> </script>
  7. <script src="scripts/prettify/lang-css.js"> </script>
  8. <!--[if lt IE 9]>
  9. <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
  10. <![endif]-->
  11. <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
  12. <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
  13. </head>
  14. <body>
  15. <div id="main">
  16. <h1 class="page-title">Class: Renderer</h1>
  17. <section>
  18. <header>
  19. <h2><span class="attribs"><span class="type-signature"></span></span>Renderer<span class="signature">()</span><span class="type-signature"></span></h2>
  20. </header>
  21. <article>
  22. <div class="container-overview">
  23. <h4 class="name" id="Renderer"><span class="type-signature"></span>new Renderer<span class="signature">()</span><span class="type-signature"></span></h4>
  24. <div class="description">
  25. The renderer is resposible for drawing the structure into the canvas element. Its also resposible for managing the canvas state.
  26. </div>
  27. <dl class="details">
  28. <dt class="tag-source">Source:</dt>
  29. <dd class="tag-source"><ul class="dummy"><li>
  30. <a href="Renderer.js.html">Renderer.js</a>, <a href="Renderer.js.html#line13">line 13</a>
  31. </li></ul></dd>
  32. </dl>
  33. </div>
  34. <h3 class="subsection-title">Members</h3>
  35. <h4 class="name" id="autoClear"><span class="type-signature"></span>autoClear<span class="type-signature"></span></h4>
  36. <div class="description">
  37. Indicates if the canvas should be automatically cleared on each new frame.
  38. </div>
  39. <dl class="details">
  40. <dt class="tag-source">Source:</dt>
  41. <dd class="tag-source"><ul class="dummy"><li>
  42. <a href="Renderer.js.html">Renderer.js</a>, <a href="Renderer.js.html#line44">line 44</a>
  43. </li></ul></dd>
  44. </dl>
  45. <h4 class="name" id="canvas"><span class="type-signature"></span>canvas<span class="type-signature"></span></h4>
  46. <div class="description">
  47. Canvas DOM element, has to be managed by the user.
  48. </div>
  49. <dl class="details">
  50. <dt class="tag-source">Source:</dt>
  51. <dd class="tag-source"><ul class="dummy"><li>
  52. <a href="Renderer.js.html">Renderer.js</a>, <a href="Renderer.js.html#line26">line 26</a>
  53. </li></ul></dd>
  54. </dl>
  55. <h4 class="name" id="context"><span class="type-signature"></span>context<span class="type-signature"></span></h4>
  56. <div class="description">
  57. Canvas 2D rendering context used to draw content.
  58. </div>
  59. <dl class="details">
  60. <dt class="tag-source">Source:</dt>
  61. <dd class="tag-source"><ul class="dummy"><li>
  62. <a href="Renderer.js.html">Renderer.js</a>, <a href="Renderer.js.html#line31">line 31</a>
  63. </li></ul></dd>
  64. </dl>
  65. <h4 class="name" id="pointer"><span class="type-signature"></span>pointer<span class="type-signature"></span></h4>
  66. <div class="description">
  67. Pointer input handler object.
  68. </div>
  69. <dl class="details">
  70. <dt class="tag-source">Source:</dt>
  71. <dd class="tag-source"><ul class="dummy"><li>
  72. <a href="Renderer.js.html">Renderer.js</a>, <a href="Renderer.js.html#line38">line 38</a>
  73. </li></ul></dd>
  74. </dl>
  75. <h3 class="subsection-title">Methods</h3>
  76. <h4 class="name" id="createRenderLoop"><span class="type-signature"></span>createRenderLoop<span class="signature">(group, viewport, onUpdate)</span><span class="type-signature"></span></h4>
  77. <div class="description">
  78. Creates a infinite render loop to render the group into a viewport each frame. The render loop cannot be destroyed, and it automatically creates a viewport controls object.
  79. </div>
  80. <h5>Parameters:</h5>
  81. <table class="params">
  82. <thead>
  83. <tr>
  84. <th>Name</th>
  85. <th>Type</th>
  86. <th class="last">Description</th>
  87. </tr>
  88. </thead>
  89. <tbody>
  90. <tr>
  91. <td class="name"><code>group</code></td>
  92. <td class="type">
  93. <span class="param-type"><a href="Object2D.html">Object2D</a></span>
  94. </td>
  95. <td class="description last">Group to be rendererd.</td>
  96. </tr>
  97. <tr>
  98. <td class="name"><code>viewport</code></td>
  99. <td class="type">
  100. <span class="param-type"><a href="Viewport.html">Viewport</a></span>
  101. </td>
  102. <td class="description last">Viewport into the objects.</td>
  103. </tr>
  104. <tr>
  105. <td class="name"><code>onUpdate</code></td>
  106. <td class="type">
  107. <span class="param-type">function</span>
  108. </td>
  109. <td class="description last">Function called before rendering the frame.</td>
  110. </tr>
  111. </tbody>
  112. </table>
  113. <dl class="details">
  114. <dt class="tag-source">Source:</dt>
  115. <dd class="tag-source"><ul class="dummy"><li>
  116. <a href="Renderer.js.html">Renderer.js</a>, <a href="Renderer.js.html#line56">line 56</a>
  117. </li></ul></dd>
  118. </dl>
  119. <h4 class="name" id="update"><span class="type-signature"></span>update<span class="signature">(object, viewport)</span><span class="type-signature"></span></h4>
  120. <div class="description">
  121. Update the renderer state, update the input handlers, calculate the object and viewport transformation matrices. Render the object using the viewport into a canvas element. The canvas state is saved and restored for each individual object, ensuring that the code of one object does not affect another one. Should be called at a fixed rate preferably using the requestAnimationFrame() method, its also possible to use the createRenderLoop() method, that automatically creates a infinite render loop.
  122. </div>
  123. <h5>Parameters:</h5>
  124. <table class="params">
  125. <thead>
  126. <tr>
  127. <th>Name</th>
  128. <th>Type</th>
  129. <th class="last">Description</th>
  130. </tr>
  131. </thead>
  132. <tbody>
  133. <tr>
  134. <td class="name"><code>object</code></td>
  135. <td class="type">
  136. </td>
  137. <td class="description last">Object to be updated.</td>
  138. </tr>
  139. <tr>
  140. <td class="name"><code>viewport</code></td>
  141. <td class="type">
  142. </td>
  143. <td class="description last">Viewport to be updated (should be the one where the objects will be rendered after).</td>
  144. </tr>
  145. </tbody>
  146. </table>
  147. <dl class="details">
  148. <dt class="tag-source">Source:</dt>
  149. <dd class="tag-source"><ul class="dummy"><li>
  150. <a href="Renderer.js.html">Renderer.js</a>, <a href="Renderer.js.html#line89">line 89</a>
  151. </li></ul></dd>
  152. </dl>
  153. </article>
  154. </section>
  155. </div>
  156. <nav>
  157. <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="BezierCurve.html">BezierCurve</a></li><li><a href="Box.html">Box</a></li><li><a href="Box2.html">Box2</a></li><li><a href="BoxMask.html">BoxMask</a></li><li><a href="Circle.html">Circle</a></li><li><a href="DOM.html">DOM</a></li><li><a href="EventManager.html">EventManager</a></li><li><a href="Graph.html">Graph</a></li><li><a href="Helpers.html">Helpers</a></li><li><a href="Image.html">Image</a></li><li><a href="Key.html">Key</a></li><li><a href="Line.html">Line</a></li><li><a href="Mask.html">Mask</a></li><li><a href="Matrix.html">Matrix</a></li><li><a href="Object2D.html">Object2D</a></li><li><a href="Pattern.html">Pattern</a></li><li><a href="Pointer.html">Pointer</a></li><li><a href="Renderer.html">Renderer</a></li><li><a href="Text.html">Text</a></li><li><a href="UUID.html">UUID</a></li><li><a href="Vector2.html">Vector2</a></li><li><a href="Viewport.html">Viewport</a></li><li><a href="ViewportControls.html">ViewportControls</a></li></ul>
  158. </nav>
  159. <br class="clear">
  160. <footer>
  161. Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.2</a> on Thu Jun 13 2019 11:55:28 GMT+0100 (Western European Summer Time)
  162. </footer>
  163. <script> prettyPrint(); </script>
  164. <script src="scripts/linenumber.js"> </script>
  165. </body>
  166. </html>