2
0

examples.html 53 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250
  1. <!DOCTYPE html>
  2. <html class="writer-html5" lang="en" data-content_root="./">
  3. <head>
  4. <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>Examples &mdash; bgfx 1.136.9083 documentation</title>
  7. <link rel="stylesheet" type="text/css" href="_static/pygments.css?v=03e43079" />
  8. <link rel="stylesheet" type="text/css" href="_static/css/theme.css?v=e59714d7" />
  9. <script src="_static/jquery.js?v=5d32c60e"></script>
  10. <script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
  11. <script src="_static/documentation_options.js?v=f601d78d"></script>
  12. <script src="_static/doctools.js?v=9bcbadda"></script>
  13. <script src="_static/sphinx_highlight.js?v=dc90522c"></script>
  14. <script src="_static/js/theme.js"></script>
  15. <link rel="index" title="Index" href="genindex.html" />
  16. <link rel="search" title="Search" href="search.html" />
  17. <link rel="next" title="API Reference" href="bgfx.html" />
  18. <link rel="prev" title="Building" href="build.html" />
  19. </head>
  20. <body class="wy-body-for-nav">
  21. <div class="wy-grid-for-nav">
  22. <nav data-toggle="wy-nav-shift" class="wy-nav-side">
  23. <div class="wy-side-scroll">
  24. <div class="wy-side-nav-search" >
  25. <a href="index.html" class="icon icon-home">
  26. bgfx
  27. </a>
  28. <div role="search">
  29. <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
  30. <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
  31. <input type="hidden" name="check_keywords" value="yes" />
  32. <input type="hidden" name="area" value="default" />
  33. </form>
  34. </div>
  35. </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
  36. <ul class="current">
  37. <li class="toctree-l1"><a class="reference internal" href="overview.html">Overview</a></li>
  38. <li class="toctree-l1"><a class="reference internal" href="build.html">Building</a></li>
  39. <li class="toctree-l1 current"><a class="current reference internal" href="#">Examples</a><ul>
  40. <li class="toctree-l2"><a class="reference internal" href="#helloworld">00-helloworld</a></li>
  41. <li class="toctree-l2"><a class="reference internal" href="#cubes">01-cubes</a></li>
  42. <li class="toctree-l2"><a class="reference internal" href="#metaballs">02-metaballs</a></li>
  43. <li class="toctree-l2"><a class="reference internal" href="#raymarch">03-raymarch</a></li>
  44. <li class="toctree-l2"><a class="reference internal" href="#mesh">04-mesh</a></li>
  45. <li class="toctree-l2"><a class="reference internal" href="#instancing">05-instancing</a></li>
  46. <li class="toctree-l2"><a class="reference internal" href="#bump">06-bump</a></li>
  47. <li class="toctree-l2"><a class="reference internal" href="#callback">07-callback</a></li>
  48. <li class="toctree-l2"><a class="reference internal" href="#update">08-update</a></li>
  49. <li class="toctree-l2"><a class="reference internal" href="#hdr">09-hdr</a></li>
  50. <li class="toctree-l2"><a class="reference internal" href="#font">10-font</a></li>
  51. <li class="toctree-l2"><a class="reference internal" href="#fontsdf">11-fontsdf</a></li>
  52. <li class="toctree-l2"><a class="reference internal" href="#lod">12-lod</a></li>
  53. <li class="toctree-l2"><a class="reference internal" href="#stencil">13-stencil</a></li>
  54. <li class="toctree-l2"><a class="reference internal" href="#shadowvolumes">14-shadowvolumes</a></li>
  55. <li class="toctree-l2"><a class="reference internal" href="#shadowmaps-simple">15-shadowmaps-simple</a></li>
  56. <li class="toctree-l2"><a class="reference internal" href="#shadowmaps">16-shadowmaps</a></li>
  57. <li class="toctree-l2"><a class="reference internal" href="#drawstress">17-drawstress</a><ul>
  58. <li class="toctree-l3"><a class="reference internal" href="#hz">60Hz</a></li>
  59. <li class="toctree-l3"><a class="reference internal" href="#hz-test-for-browsers">30Hz (test for browsers)</a></li>
  60. </ul>
  61. </li>
  62. <li class="toctree-l2"><a class="reference internal" href="#ibl">18-ibl</a></li>
  63. <li class="toctree-l2"><a class="reference internal" href="#oit">19-oit</a></li>
  64. <li class="toctree-l2"><a class="reference internal" href="#nanovg">20-nanovg</a></li>
  65. <li class="toctree-l2"><a class="reference internal" href="#deferred">21-deferred</a></li>
  66. <li class="toctree-l2"><a class="reference internal" href="#windows">22-windows</a></li>
  67. <li class="toctree-l2"><a class="reference internal" href="#vectordisplay">23-vectordisplay</a></li>
  68. <li class="toctree-l2"><a class="reference internal" href="#nbody">24-nbody</a></li>
  69. <li class="toctree-l2"><a class="reference internal" href="#c99">25-c99</a></li>
  70. <li class="toctree-l2"><a class="reference internal" href="#occlusion">26-occlusion</a></li>
  71. <li class="toctree-l2"><a class="reference internal" href="#terrain">27-terrain</a></li>
  72. <li class="toctree-l2"><a class="reference internal" href="#wireframe">28-wireframe</a></li>
  73. <li class="toctree-l2"><a class="reference internal" href="#debugdraw">29-debugdraw</a></li>
  74. <li class="toctree-l2"><a class="reference internal" href="#picking">30-picking</a></li>
  75. <li class="toctree-l2"><a class="reference internal" href="#rsm">31-rsm</a></li>
  76. <li class="toctree-l2"><a class="reference internal" href="#particles">32-particles</a></li>
  77. <li class="toctree-l2"><a class="reference internal" href="#pom">33-pom</a></li>
  78. <li class="toctree-l2"><a class="reference internal" href="#mvs">34-mvs</a></li>
  79. <li class="toctree-l2"><a class="reference internal" href="#dynamic">35-dynamic</a></li>
  80. <li class="toctree-l2"><a class="reference internal" href="#sky">36-sky</a></li>
  81. <li class="toctree-l2"><a class="reference internal" href="#gpudrivenrendering">37-gpudrivenrendering</a></li>
  82. <li class="toctree-l2"><a class="reference internal" href="#bloom">38-bloom</a></li>
  83. <li class="toctree-l2"><a class="reference internal" href="#assao">39-assao</a></li>
  84. <li class="toctree-l2"><a class="reference internal" href="#svt">40-svt</a></li>
  85. <li class="toctree-l2"><a class="reference internal" href="#tess">41-tess</a></li>
  86. <li class="toctree-l2"><a class="reference internal" href="#bunnylod">42-bunnylod</a></li>
  87. <li class="toctree-l2"><a class="reference internal" href="#denoise">43-denoise</a></li>
  88. <li class="toctree-l2"><a class="reference internal" href="#sss">44-sss</a></li>
  89. <li class="toctree-l2"><a class="reference internal" href="#bokeh">45-bokeh</a></li>
  90. <li class="toctree-l2"><a class="reference internal" href="#fsr">46-fsr</a></li>
  91. <li class="toctree-l2"><a class="reference internal" href="#pixelformats">47-pixelformats</a></li>
  92. <li class="toctree-l2"><a class="reference internal" href="#drawindirect">48-drawindirect</a></li>
  93. <li class="toctree-l2"><a class="reference internal" href="#hextile">49-hextile</a></li>
  94. <li class="toctree-l2"><a class="reference internal" href="#headless">50-headless</a></li>
  95. </ul>
  96. </li>
  97. <li class="toctree-l1"><a class="reference internal" href="bgfx.html">API Reference</a></li>
  98. <li class="toctree-l1"><a class="reference internal" href="tools.html">Tools</a></li>
  99. <li class="toctree-l1"><a class="reference internal" href="internals.html">Internals</a></li>
  100. <li class="toctree-l1"><a class="reference internal" href="license.html">License</a></li>
  101. </ul>
  102. </div>
  103. </div>
  104. </nav>
  105. <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
  106. <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
  107. <a href="index.html">bgfx</a>
  108. </nav>
  109. <div class="wy-nav-content">
  110. <div class="rst-content">
  111. <div role="navigation" aria-label="Page navigation">
  112. <ul class="wy-breadcrumbs">
  113. <li><a href="index.html" class="icon icon-home" aria-label="Home"></a></li>
  114. <li class="breadcrumb-item active">Examples</li>
  115. <li class="wy-breadcrumbs-aside">
  116. </li>
  117. </ul>
  118. <hr/>
  119. </div>
  120. <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
  121. <div itemprop="articleBody">
  122. <section id="examples">
  123. <h1>Examples<a class="headerlink" href="#examples" title="Link to this heading"></a></h1>
  124. <p>Most of the examples require shader/texture/mesh data to be loaded. When
  125. running examples your current directory should be examples/runtime.</p>
  126. <div class="highlight-default notranslate"><div class="highlight"><pre><span></span>&lt;bgfx_path&gt;/examples/runtime $ ../../.build/&lt;config&gt;/bin/example-00-helloworldDebug
  127. </pre></div>
  128. </div>
  129. <section id="helloworld">
  130. <h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/blob/master/examples/00-helloworld">00-helloworld</a><a class="headerlink" href="#helloworld" title="Link to this heading"></a></h2>
  131. <p>Initialization and debug text.</p>
  132. <figure class="align-default">
  133. <img alt="example-00-helloworld" src="https://github.com/bkaradzic/bgfx/raw/master/examples/00-helloworld/screenshot.png" />
  134. </figure>
  135. </section>
  136. <section id="cubes">
  137. <h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/blob/master/examples/01-cubes/cubes.cpp">01-cubes</a><a class="headerlink" href="#cubes" title="Link to this heading"></a></h2>
  138. <p>Rendering simple static mesh.</p>
  139. <figure class="align-default">
  140. <img alt="example-01-cubes" src="https://github.com/bkaradzic/bgfx/raw/master/examples/01-cubes/screenshot.png" />
  141. </figure>
  142. </section>
  143. <section id="metaballs">
  144. <h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/blob/master/examples/02-metaballs">02-metaballs</a><a class="headerlink" href="#metaballs" title="Link to this heading"></a></h2>
  145. <p>Rendering with transient buffers and embedding shaders.</p>
  146. <div class="emscripten">
  147. <progress value="0" max="100" id="progress" hidden=1></progress>
  148. </div>
  149. <div class="spinner" id='spinner'></div>
  150. <div class="emscripten" id="status">Downloading...</div>
  151. <div class="emscripten_border">
  152. <canvas class="emscripten" id="canvas" oncontextmenu="event.preventDefault()"></canvas>
  153. </div>
  154. <script type='text/javascript'>
  155. var statusElement = document.getElementById('status');
  156. var progressElement = document.getElementById('progress');
  157. var spinnerElement = document.getElementById('spinner');
  158. var Module = {
  159. preRun: [],
  160. postRun: [],
  161. print: (function() {
  162. var element = document.getElementById('output');
  163. if (element) element.value = ''; // clear browser cache
  164. return function(text) {
  165. if (arguments.length > 1) text = Array.prototype.slice.call(arguments).join(' ');
  166. // These replacements are necessary if you render to raw HTML
  167. //text = text.replace(/&/g, "&amp;");
  168. //text = text.replace(/</g, "&lt;");
  169. //text = text.replace(/>/g, "&gt;");
  170. //text = text.replace('\n', '<br>', 'g');
  171. console.log(text);
  172. if (element) {
  173. element.value += text + "\n";
  174. element.scrollTop = element.scrollHeight; // focus on bottom
  175. }
  176. };
  177. })(),
  178. printErr: function(text) {
  179. if (arguments.length > 1) text = Array.prototype.slice.call(arguments).join(' ');
  180. if (0) { // XXX disabled for safety typeof dump == 'function') {
  181. dump(text + '\n'); // fast, straight to the real console
  182. } else {
  183. console.error(text);
  184. }
  185. },
  186. canvas: (function() {
  187. var canvas = document.getElementById('canvas');
  188. // As a default initial behavior, pop up an alert when webgl context is lost. To make your
  189. // application robust, you may want to override this behavior before shipping!
  190. // See http://www.khronos.org/registry/webgl/specs/latest/1.0/#5.15.2
  191. canvas.addEventListener("webglcontextlost", function(e) { alert('WebGL context lost. You will need to reload the page.'); e.preventDefault(); }, false);
  192. return canvas;
  193. })(),
  194. setStatus: function(text) {
  195. if (!Module.setStatus.last) Module.setStatus.last = { time: Date.now(), text: '' };
  196. if (text === Module.setStatus.text) return;
  197. var m = text.match(/([^(]+)\((\d+(\.\d+)?)\/(\d+)\)/);
  198. var now = Date.now();
  199. if (m && now - Date.now() < 30) return; // if this is a progress update, skip it if too soon
  200. if (m) {
  201. text = m[1];
  202. progressElement.value = parseInt(m[2])*100;
  203. progressElement.max = parseInt(m[4])*100;
  204. progressElement.hidden = false;
  205. spinnerElement.hidden = false;
  206. } else {
  207. progressElement.value = null;
  208. progressElement.max = null;
  209. progressElement.hidden = true;
  210. if (!text) spinnerElement.style.display = 'none';
  211. }
  212. statusElement.innerHTML = text;
  213. },
  214. totalDependencies: 0,
  215. monitorRunDependencies: function(left) {
  216. this.totalDependencies = Math.max(this.totalDependencies, left);
  217. Module.setStatus(left ? 'Preparing... (' + (this.totalDependencies-left) + '/' + this.totalDependencies + ')' : 'All downloads complete.');
  218. }
  219. };
  220. Module.setStatus('Downloading...');
  221. window.onerror = function(event) {
  222. // TODO: do not warn on ok events like simulating an infinite loop or exitStatus
  223. Module.setStatus('Exception thrown, see JavaScript console');
  224. spinnerElement.style.display = 'none';
  225. Module.setStatus = function(text) {
  226. if (text) Module.printErr('[post-exception status] ' + text);
  227. };
  228. };
  229. </script>
  230. <script async type="text/javascript" src="example-02-metaballsRelease.bc.js"></script></section>
  231. <section id="raymarch">
  232. <h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/blob/master/examples/03-raymarch">03-raymarch</a><a class="headerlink" href="#raymarch" title="Link to this heading"></a></h2>
  233. <p>Updating shader uniforms.</p>
  234. <figure class="align-default">
  235. <img alt="example-03-raymarch" src="https://github.com/bkaradzic/bgfx/raw/master/examples/03-raymarch/screenshot.png" />
  236. </figure>
  237. </section>
  238. <section id="mesh">
  239. <h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/blob/master/examples/04-mesh">04-mesh</a><a class="headerlink" href="#mesh" title="Link to this heading"></a></h2>
  240. <p>Loading meshes.</p>
  241. <figure class="align-default">
  242. <img alt="example-04-mesh" src="https://github.com/bkaradzic/bgfx/raw/master/examples/04-mesh/screenshot.png" />
  243. </figure>
  244. </section>
  245. <section id="instancing">
  246. <h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/blob/master/examples/05-instancing">05-instancing</a><a class="headerlink" href="#instancing" title="Link to this heading"></a></h2>
  247. <p>Geometry instancing.</p>
  248. <figure class="align-default">
  249. <img alt="example-05-instancing" src="https://github.com/bkaradzic/bgfx/raw/master/examples/05-instancing/screenshot.png" />
  250. </figure>
  251. </section>
  252. <section id="bump">
  253. <h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/blob/master/examples/06-bump">06-bump</a><a class="headerlink" href="#bump" title="Link to this heading"></a></h2>
  254. <p>Loading textures.</p>
  255. <figure class="align-default">
  256. <img alt="example-06-bump" src="https://github.com/bkaradzic/bgfx/raw/master/examples/06-bump/screenshot.png" />
  257. </figure>
  258. </section>
  259. <section id="callback">
  260. <h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/blob/master/examples/07-callback">07-callback</a><a class="headerlink" href="#callback" title="Link to this heading"></a></h2>
  261. <p>Implementing application specific callbacks for taking screen shots,
  262. caching OpenGL binary shaders, and video capture.</p>
  263. </section>
  264. <section id="update">
  265. <h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/blob/master/examples/08-update">08-update</a><a class="headerlink" href="#update" title="Link to this heading"></a></h2>
  266. <p>Updating textures.</p>
  267. </section>
  268. <section id="hdr">
  269. <h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/09-hdr">09-hdr</a><a class="headerlink" href="#hdr" title="Link to this heading"></a></h2>
  270. <p>Using multiple views with frame buffers, and view order remapping.</p>
  271. <figure class="align-default">
  272. <img alt="example-09-hdr" src="https://github.com/bkaradzic/bgfx/raw/master/examples/09-hdr/screenshot.png" />
  273. </figure>
  274. </section>
  275. <section id="font">
  276. <h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/10-font">10-font</a><a class="headerlink" href="#font" title="Link to this heading"></a></h2>
  277. <p>Use the font system to display text and styled text.</p>
  278. <figure class="align-default">
  279. <img alt="example-10-font" src="https://github.com/bkaradzic/bgfx/raw/master/examples/10-font/screenshot.png" />
  280. </figure>
  281. </section>
  282. <section id="fontsdf">
  283. <h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/11-fontsdf">11-fontsdf</a><a class="headerlink" href="#fontsdf" title="Link to this heading"></a></h2>
  284. <p>Use a single distance field font to render text of various size.</p>
  285. <figure class="align-default">
  286. <img alt="example-11-fontsdf" src="https://github.com/bkaradzic/bgfx/raw/master/examples/11-fontsdf/screenshot.png" />
  287. </figure>
  288. </section>
  289. <section id="lod">
  290. <h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/12-lod">12-lod</a><a class="headerlink" href="#lod" title="Link to this heading"></a></h2>
  291. <p>Mesh LOD transitions.</p>
  292. <figure class="align-default">
  293. <img alt="example-12-lod" src="https://github.com/bkaradzic/bgfx/raw/master/examples/12-lod/screenshot.png" />
  294. </figure>
  295. </section>
  296. <section id="stencil">
  297. <h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/13-stencil">13-stencil</a><a class="headerlink" href="#stencil" title="Link to this heading"></a></h2>
  298. <p>Stencil reflections and shadows.</p>
  299. <figure class="align-default">
  300. <img alt="example-13-stencil" src="https://github.com/bkaradzic/bgfx/raw/master/examples/13-stencil/screenshot.png" />
  301. </figure>
  302. </section>
  303. <section id="shadowvolumes">
  304. <h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/14-shadowvolumes">14-shadowvolumes</a><a class="headerlink" href="#shadowvolumes" title="Link to this heading"></a></h2>
  305. <p>Shadow volumes.</p>
  306. <figure class="align-default">
  307. <img alt="example-14-shadowvolumes" src="https://github.com/bkaradzic/bgfx/raw/master/examples/14-shadowvolumes/screenshot.png" />
  308. </figure>
  309. </section>
  310. <section id="shadowmaps-simple">
  311. <h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/15-shadowmaps-simple">15-shadowmaps-simple</a><a class="headerlink" href="#shadowmaps-simple" title="Link to this heading"></a></h2>
  312. <figure class="align-default">
  313. <img alt="example-15-shadowmaps-simple" src="https://github.com/bkaradzic/bgfx/raw/master/examples/15-shadowmaps-simple/screenshot.png" />
  314. </figure>
  315. </section>
  316. <section id="shadowmaps">
  317. <h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/16-shadowmaps">16-shadowmaps</a><a class="headerlink" href="#shadowmaps" title="Link to this heading"></a></h2>
  318. <figure class="align-default">
  319. <img alt="example-16-shadowmaps" src="https://github.com/bkaradzic/bgfx/raw/master/examples/16-shadowmaps/screenshot.png" />
  320. </figure>
  321. </section>
  322. <section id="drawstress">
  323. <h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/blob/master/examples/17-drawstress">17-drawstress</a><a class="headerlink" href="#drawstress" title="Link to this heading"></a></h2>
  324. <section id="hz">
  325. <h3>60Hz<a class="headerlink" href="#hz" title="Link to this heading"></a></h3>
  326. <p>Draw stress is CPU stress test to show what is the maximum number of
  327. draw calls while maintaining 60Hz frame rate. bgfx currently has default
  328. limit of 64K draw calls per frame. You can increase this limit by
  329. changing <code class="docutils literal notranslate"><span class="pre">BGFX_CONFIG_MAX_DRAW_CALLS</span></code>.</p>
  330. <table class="docutils align-default">
  331. <thead>
  332. <tr class="row-odd"><th class="head"><p>CPU</p></th>
  333. <th class="head"><p>Renderer</p></th>
  334. <th class="head"><p>GPU</p></th>
  335. <th class="head"><p>Arch/Compiler/OS</p></th>
  336. <th class="head"><p>Dim</p></th>
  337. <th class="head"><p>Calls</p></th>
  338. </tr>
  339. </thead>
  340. <tbody>
  341. <tr class="row-even"><td><p>i7-4770K 4.2</p></td>
  342. <td><p>GL2.1</p></td>
  343. <td><p>2xGTX780</p></td>
  344. <td><p>x64/VS2013/Win 8.1</p></td>
  345. <td><p>51</p></td>
  346. <td><p>132651</p></td>
  347. </tr>
  348. <tr class="row-odd"><td><p>i7-4770K 4.2</p></td>
  349. <td><p>DX11</p></td>
  350. <td><p>2xGTX780</p></td>
  351. <td><p>x64/VS2013/Win 8.1</p></td>
  352. <td><p>50</p></td>
  353. <td><p>125000</p></td>
  354. </tr>
  355. <tr class="row-even"><td><p>i7-4790K 4.0</p></td>
  356. <td><p>GL2.1</p></td>
  357. <td><p>GTX970</p></td>
  358. <td><p>x64/VS2015/Win 10</p></td>
  359. <td><p>47</p></td>
  360. <td><p>103823</p></td>
  361. </tr>
  362. <tr class="row-odd"><td><p>i7-4790K 4.0</p></td>
  363. <td><p>DX11</p></td>
  364. <td><p>GTX970</p></td>
  365. <td><p>x64/VS2015/Win 10</p></td>
  366. <td><p>45</p></td>
  367. <td><p>91125</p></td>
  368. </tr>
  369. <tr class="row-even"><td><p>i7-4790K 4.0</p></td>
  370. <td><p>DX9</p></td>
  371. <td><p>GTX970</p></td>
  372. <td><p>x64/VS2013/Win 10</p></td>
  373. <td><p>40</p></td>
  374. <td><p>64000</p></td>
  375. </tr>
  376. <tr class="row-odd"><td><p>i5-3570 3.8</p></td>
  377. <td><p>NV 331.49</p></td>
  378. <td><p>GTX560Ti</p></td>
  379. <td><p>x64/GCC/Linux</p></td>
  380. <td><p>40</p></td>
  381. <td><p>64000+</p></td>
  382. </tr>
  383. <tr class="row-even"><td><p>i7-920 2.66</p></td>
  384. <td><p>GL2.1</p></td>
  385. <td><p>GTX650Ti</p></td>
  386. <td><p>x64/VS2008/Win 7</p></td>
  387. <td><p>38</p></td>
  388. <td><p>54872</p></td>
  389. </tr>
  390. <tr class="row-odd"><td><p>i7-920 2.66</p></td>
  391. <td><p>GL2.1</p></td>
  392. <td><p>GTX650Ti</p></td>
  393. <td><p>x86/VS2008/Win 7</p></td>
  394. <td><p>38</p></td>
  395. <td><p>54872</p></td>
  396. </tr>
  397. <tr class="row-even"><td><p>i7-6700K 4.0</p></td>
  398. <td><p>GL2.1</p></td>
  399. <td><p>Skylake GT2</p></td>
  400. <td><p>x64/GCC/Win 10</p></td>
  401. <td><p>38</p></td>
  402. <td><p>54872</p></td>
  403. </tr>
  404. <tr class="row-odd"><td><p>i7-4790K 4.0</p></td>
  405. <td><p>DX11</p></td>
  406. <td><p>R7 240</p></td>
  407. <td><p>x64/VS2015/Win 10</p></td>
  408. <td><p>36</p></td>
  409. <td><p>46656</p></td>
  410. </tr>
  411. <tr class="row-even"><td><p>i7-920 2.66</p></td>
  412. <td><p>NV 331.113</p></td>
  413. <td><p>GTX650Ti</p></td>
  414. <td><p>x64/GCC/Linux</p></td>
  415. <td><p>34</p></td>
  416. <td><p>39304</p></td>
  417. </tr>
  418. <tr class="row-odd"><td><p>i7-6700K 4.0</p></td>
  419. <td><p>DX11</p></td>
  420. <td><p>Skylake GT2</p></td>
  421. <td><p>x64/GCC/Win 10</p></td>
  422. <td><p>34</p></td>
  423. <td><p>39304</p></td>
  424. </tr>
  425. <tr class="row-even"><td><p>i7-4790K 4.0</p></td>
  426. <td><p>DX9</p></td>
  427. <td><p>R7 240</p></td>
  428. <td><p>x64/VS2015/Win 10</p></td>
  429. <td><p>32</p></td>
  430. <td><p>32768</p></td>
  431. </tr>
  432. <tr class="row-odd"><td><p>i7-920 2.66</p></td>
  433. <td><p>DX9</p></td>
  434. <td><p>GTX650Ti</p></td>
  435. <td><p>x64/GCC/Win 7</p></td>
  436. <td><p>32</p></td>
  437. <td><p>32768</p></td>
  438. </tr>
  439. <tr class="row-even"><td><p>i7-920 2.66</p></td>
  440. <td><p>DX9</p></td>
  441. <td><p>GTX650Ti</p></td>
  442. <td><p>x64/VS2008/Win 7</p></td>
  443. <td><p>32</p></td>
  444. <td><p>32768</p></td>
  445. </tr>
  446. <tr class="row-odd"><td><p>i7-920 2.66</p></td>
  447. <td><p>DX9</p></td>
  448. <td><p>GTX650Ti</p></td>
  449. <td><p>x86/GCC/Win 7</p></td>
  450. <td><p>30</p></td>
  451. <td><p>27000</p></td>
  452. </tr>
  453. <tr class="row-even"><td><p>i7-920 2.66</p></td>
  454. <td><p>DX9</p></td>
  455. <td><p>GTX650Ti</p></td>
  456. <td><p>x86/VS2008/Win 7</p></td>
  457. <td><p>30</p></td>
  458. <td><p>27000</p></td>
  459. </tr>
  460. <tr class="row-odd"><td><p>i5-6200U 2.3</p></td>
  461. <td><p>DX11</p></td>
  462. <td><p>Intel 520</p></td>
  463. <td><p>x64/GCC/Win 10</p></td>
  464. <td><p>30</p></td>
  465. <td><p>27000</p></td>
  466. </tr>
  467. <tr class="row-even"><td><p>i5-4250U 1.3</p></td>
  468. <td><p>GL2.1</p></td>
  469. <td><p>HD5000</p></td>
  470. <td><p>x64/Clang/OSX 10.9</p></td>
  471. <td><p>28</p></td>
  472. <td><p>21852</p></td>
  473. </tr>
  474. <tr class="row-odd"><td><p>Q8200 2.33</p></td>
  475. <td><p>NV 319.32</p></td>
  476. <td><p>GTX260</p></td>
  477. <td><p>x64/GCC/Linux</p></td>
  478. <td><p>27</p></td>
  479. <td><p>19683</p></td>
  480. </tr>
  481. <tr class="row-even"><td><p>i7-6700K 4.0</p></td>
  482. <td><p>GL2.1</p></td>
  483. <td><p>Skylake GT2</p></td>
  484. <td><p>x64/GCC/Linux</p></td>
  485. <td><p>27</p></td>
  486. <td><p>19683</p></td>
  487. </tr>
  488. <tr class="row-odd"><td><p>i7-2600K 3.4</p></td>
  489. <td><p>DX9</p></td>
  490. <td><p>AMD6800</p></td>
  491. <td><p>x64/VS2012/Win 7</p></td>
  492. <td><p>27</p></td>
  493. <td><p>19683</p></td>
  494. </tr>
  495. <tr class="row-even"><td><p>i7-2600K 3.4</p></td>
  496. <td><p>GL2.1</p></td>
  497. <td><p>AMD6800</p></td>
  498. <td><p>x64/VS2012/Win 7</p></td>
  499. <td><p>26</p></td>
  500. <td><p>17576</p></td>
  501. </tr>
  502. <tr class="row-odd"><td><p>i7-4770R 3.2</p></td>
  503. <td><p>Mesa 10.5.9</p></td>
  504. <td><p>HD5200</p></td>
  505. <td><p>x64/GCC/Linux</p></td>
  506. <td><p>26</p></td>
  507. <td><p>17576</p></td>
  508. </tr>
  509. <tr class="row-even"><td><p>i5-6200U 2.3</p></td>
  510. <td><p>GL</p></td>
  511. <td><p>Intel 520</p></td>
  512. <td><p>x64/GCC/Win 10</p></td>
  513. <td><p>26</p></td>
  514. <td><p>17576</p></td>
  515. </tr>
  516. <tr class="row-odd"><td><p>i7-920 2.66</p></td>
  517. <td><p>DX9-Wine</p></td>
  518. <td><p>GTX650Ti</p></td>
  519. <td><p>x64/GCC/Linux</p></td>
  520. <td><p>24</p></td>
  521. <td><p>13824</p></td>
  522. </tr>
  523. <tr class="row-even"><td><p>i5-6200U 2.3</p></td>
  524. <td><p>Mesa 10.5.9</p></td>
  525. <td><p>Intel 520</p></td>
  526. <td><p>x64/GCC/Linux</p></td>
  527. <td><p>23</p></td>
  528. <td><p>12167</p></td>
  529. </tr>
  530. <tr class="row-odd"><td><p>i7-4750HQ 2.0</p></td>
  531. <td><p>Mesa 10.0.1</p></td>
  532. <td><p>HD5200</p></td>
  533. <td><p>x64/GCC/Linux</p></td>
  534. <td><p>22</p></td>
  535. <td><p>10648</p></td>
  536. </tr>
  537. <tr class="row-even"><td><p>i7-4750HQ 2.0</p></td>
  538. <td><p>Mesa 10.1.3</p></td>
  539. <td><p>HD5200</p></td>
  540. <td><p>x64/GCC/Linux</p></td>
  541. <td><p>21</p></td>
  542. <td><p>9261</p></td>
  543. </tr>
  544. <tr class="row-odd"><td><p>i7-920 2.66</p></td>
  545. <td><p>ES2-ANGLE</p></td>
  546. <td><p>GTX650Ti</p></td>
  547. <td><p>x86/VS2008/Win 7</p></td>
  548. <td><p>21</p></td>
  549. <td><p>9261</p></td>
  550. </tr>
  551. <tr class="row-even"><td><p>Q8200 2.33</p></td>
  552. <td><p>Gallium 0.4</p></td>
  553. <td><p>AMD5770</p></td>
  554. <td><p>x64/GCC/Linux</p></td>
  555. <td><p>21</p></td>
  556. <td><p>9261</p></td>
  557. </tr>
  558. <tr class="row-odd"><td><p>i5-4250U 1.3</p></td>
  559. <td><p>ES2</p></td>
  560. <td><p>HD5000</p></td>
  561. <td><p>JIT/Clang/PNaCl 31</p></td>
  562. <td><p>21</p></td>
  563. <td><p>9261</p></td>
  564. </tr>
  565. <tr class="row-even"><td><p>i5-4250U 1.3</p></td>
  566. <td><p>ES2</p></td>
  567. <td><p>HD5000</p></td>
  568. <td><p>x86/GCC/NaCl 31</p></td>
  569. <td><p>20</p></td>
  570. <td><p>8000</p></td>
  571. </tr>
  572. <tr class="row-odd"><td><p>Q8200 2.33</p></td>
  573. <td><p>Gallium 0.4</p></td>
  574. <td><p>GTX260</p></td>
  575. <td><p>x64/GCC/Linux</p></td>
  576. <td><p>19</p></td>
  577. <td><p>6859</p></td>
  578. </tr>
  579. <tr class="row-even"><td><p>i5-2450M 2.5</p></td>
  580. <td><p>Mesa 10.2.0</p></td>
  581. <td><p>HD3000</p></td>
  582. <td><p>x64/GCC/Linux</p></td>
  583. <td><p>19</p></td>
  584. <td><p>6859</p></td>
  585. </tr>
  586. <tr class="row-odd"><td><p>i7-920 2.66</p></td>
  587. <td><p>ES2-PowerVR</p></td>
  588. <td><p>GTX650Ti</p></td>
  589. <td><p>x86/VS2008/Win 7</p></td>
  590. <td><p>18</p></td>
  591. <td><p>5832</p></td>
  592. </tr>
  593. <tr class="row-even"><td><p>i7-920 2.66</p></td>
  594. <td><p>FF27-GL</p></td>
  595. <td><p>GTX650Ti</p></td>
  596. <td><p>JIT/Clang/W7-asm.js</p></td>
  597. <td><p>17</p></td>
  598. <td><p>4913</p></td>
  599. </tr>
  600. <tr class="row-odd"><td><p>i7-6700K 4.0</p></td>
  601. <td><p>DX9</p></td>
  602. <td><p>Skylake GT2</p></td>
  603. <td><p>x64/GCC/Win 10</p></td>
  604. <td><p>16</p></td>
  605. <td><p>4096</p></td>
  606. </tr>
  607. <tr class="row-even"><td><p>i7-4750HQ 2.0</p></td>
  608. <td><p>Mesa 8.0.5</p></td>
  609. <td><p>LLVMPIPE</p></td>
  610. <td><p>x64/GCC/Linux</p></td>
  611. <td><p>16</p></td>
  612. <td><p>4096</p></td>
  613. </tr>
  614. <tr class="row-odd"><td><p>i5-6200U 2.3</p></td>
  615. <td><p>DX9</p></td>
  616. <td><p>Intel 520</p></td>
  617. <td><p>x64/GCC/Win 10</p></td>
  618. <td><p>16</p></td>
  619. <td><p>4096</p></td>
  620. </tr>
  621. <tr class="row-even"><td><p>i7-920 2.66</p></td>
  622. <td><p>ES2-Qualcomm</p></td>
  623. <td><p>GTX650Ti</p></td>
  624. <td><p>x86/VS2008/Win 7</p></td>
  625. <td><p>15</p></td>
  626. <td><p>3375</p></td>
  627. </tr>
  628. <tr class="row-odd"><td><p>i7-920 2.66</p></td>
  629. <td><p>ES2</p></td>
  630. <td><p>GTX650Ti</p></td>
  631. <td><p>x64/GCC/NaCl 31</p></td>
  632. <td><p>15</p></td>
  633. <td><p>3375</p></td>
  634. </tr>
  635. <tr class="row-even"><td><p>i7-920 2.66</p></td>
  636. <td><p>ES2</p></td>
  637. <td><p>GTX650Ti</p></td>
  638. <td><p>JIT/Clang/PNaCl 31</p></td>
  639. <td><p>15</p></td>
  640. <td><p>3375</p></td>
  641. </tr>
  642. <tr class="row-odd"><td><p>Q8200 2.33</p></td>
  643. <td><p>NV 319.32</p></td>
  644. <td><p>GTX260</p></td>
  645. <td><p>x64/GCC/NaCl 31</p></td>
  646. <td><p>15</p></td>
  647. <td><p>3375</p></td>
  648. </tr>
  649. <tr class="row-even"><td><p>Q8200 2.33</p></td>
  650. <td><p>NV 319.32</p></td>
  651. <td><p>GTX260</p></td>
  652. <td><p>x64/GCC/PNaCl 31</p></td>
  653. <td><p>15</p></td>
  654. <td><p>3375</p></td>
  655. </tr>
  656. <tr class="row-odd"><td><p>‘12 Nexus 7</p></td>
  657. <td><p>ES2</p></td>
  658. <td><p>Tegra3</p></td>
  659. <td><p>ARM/GCC/Android</p></td>
  660. <td><p>15</p></td>
  661. <td><p>3375</p></td>
  662. </tr>
  663. <tr class="row-even"><td><p>i5-4250U 1.3</p></td>
  664. <td><p>ES2-FF27</p></td>
  665. <td><p>HD5000</p></td>
  666. <td><p>JIT/Clang/OSX-asm.js</p></td>
  667. <td><p>15</p></td>
  668. <td><p>3375</p></td>
  669. </tr>
  670. <tr class="row-odd"><td><p>i5-4250U 1.3</p></td>
  671. <td><p>Chrome33</p></td>
  672. <td><p>HD5000</p></td>
  673. <td><p>JIT/Clang/OSX-asm.js</p></td>
  674. <td><p>15</p></td>
  675. <td><p>3375</p></td>
  676. </tr>
  677. <tr class="row-even"><td><p>iPad mini 2</p></td>
  678. <td><p>ES2</p></td>
  679. <td><p>PVR G6430</p></td>
  680. <td><p>ARM64/Clang/iOS7</p></td>
  681. <td><p>15</p></td>
  682. <td><p>3375</p></td>
  683. </tr>
  684. <tr class="row-odd"><td><p>i7-920 2.66</p></td>
  685. <td><p>Chrome33</p></td>
  686. <td><p>GTX650Ti</p></td>
  687. <td><p>JIT/Clang/W7-asm.js</p></td>
  688. <td><p>14</p></td>
  689. <td><p>2744</p></td>
  690. </tr>
  691. <tr class="row-even"><td><p>i7-920 2.66</p></td>
  692. <td><p>FF27-ANGLE</p></td>
  693. <td><p>GTX650Ti</p></td>
  694. <td><p>JIT/Clang/W7-asm.js</p></td>
  695. <td><p>14</p></td>
  696. <td><p>2744</p></td>
  697. </tr>
  698. <tr class="row-odd"><td><p>‘13 Nexus 10</p></td>
  699. <td><p>ES2</p></td>
  700. <td><p>Mali T604</p></td>
  701. <td><p>ARM/GCC/Android</p></td>
  702. <td><p>13</p></td>
  703. <td><p>2197</p></td>
  704. </tr>
  705. <tr class="row-even"><td><p>iPhone 5</p></td>
  706. <td><p>ES2</p></td>
  707. <td><p>PVR SGX543</p></td>
  708. <td><p>ARM/Clang/iOS7</p></td>
  709. <td><p>13</p></td>
  710. <td><p>2197</p></td>
  711. </tr>
  712. <tr class="row-odd"><td><p>‘13 Nexus 7</p></td>
  713. <td><p>ES2</p></td>
  714. <td><p>S4 Pro</p></td>
  715. <td><p>ARM/GCC/Android</p></td>
  716. <td><p>12</p></td>
  717. <td><p>1728</p></td>
  718. </tr>
  719. <tr class="row-even"><td><p>iPad 2</p></td>
  720. <td><p>ES2</p></td>
  721. <td><p>PVR SGX543</p></td>
  722. <td><p>ARM/Clang/iOS6</p></td>
  723. <td><p>12</p></td>
  724. <td><p>1728</p></td>
  725. </tr>
  726. <tr class="row-odd"><td><p>AMD A4-5000</p></td>
  727. <td><p>Gallium 0.4</p></td>
  728. <td><p>HD8330/Kabini</p></td>
  729. <td><p>x64/GCC/Linux</p></td>
  730. <td><p>12</p></td>
  731. <td><p>1728</p></td>
  732. </tr>
  733. <tr class="row-even"><td><p>Xperia Z</p></td>
  734. <td><p>ES2</p></td>
  735. <td><p>Adreno320</p></td>
  736. <td><p>ARM/GCC/Android</p></td>
  737. <td><p>11</p></td>
  738. <td><p>1331</p></td>
  739. </tr>
  740. <tr class="row-odd"><td><p>iPod 4</p></td>
  741. <td><p>ES2</p></td>
  742. <td><p>PVR SGX535</p></td>
  743. <td><p>ARM/Clang/iOS6</p></td>
  744. <td><p>7</p></td>
  745. <td><p>343</p></td>
  746. </tr>
  747. <tr class="row-even"><td><p>i7-920 2.66</p></td>
  748. <td><p>ES2-Mali</p></td>
  749. <td><p>GTX650Ti</p></td>
  750. <td><p>x86/VS2008/Windows7</p></td>
  751. <td><p>6</p></td>
  752. <td><p>216</p></td>
  753. </tr>
  754. <tr class="row-odd"><td><p>Creator CI20</p></td>
  755. <td><p>ES2</p></td>
  756. <td><p>PVR SGX540</p></td>
  757. <td><p>MIPS/GCC/Debian8</p></td>
  758. <td><p>7</p></td>
  759. <td><p>343</p></td>
  760. </tr>
  761. <tr class="row-even"><td><p>i5-6200U 2.3</p></td>
  762. <td><p>ES2</p></td>
  763. <td><p>SwiftShader</p></td>
  764. <td><p>x64/GCC/Linux</p></td>
  765. <td><p>6</p></td>
  766. <td><p>216</p></td>
  767. </tr>
  768. <tr class="row-odd"><td><p>RaspberryPi</p></td>
  769. <td><p>ES2</p></td>
  770. <td><p>VC IV</p></td>
  771. <td><p>ARM/GCC/Raspbian</p></td>
  772. <td><p>6</p></td>
  773. <td><p>216</p></td>
  774. </tr>
  775. </tbody>
  776. </table>
  777. <p>To test browsers in 60Hz mode following changes were made:</p>
  778. <ul class="simple">
  779. <li><p>Firefox 27 <a class="reference external" href="about:config">about:config</a> adjustments: <code class="docutils literal notranslate"><span class="pre">webgl.prefer-native-gl</span> <span class="pre">true</span></code>
  780. (on Windows), and <code class="docutils literal notranslate"><span class="pre">layout.frame_rate</span> <span class="pre">500</span></code>.</p></li>
  781. <li><p>Chrome 33 command line option: <code class="docutils literal notranslate"><span class="pre">--disable-gpu-vsync</span></code>.</p></li>
  782. </ul>
  783. </section>
  784. <section id="hz-test-for-browsers">
  785. <h3>30Hz (test for browsers)<a class="headerlink" href="#hz-test-for-browsers" title="Link to this heading"></a></h3>
  786. <p>By default browsers are using vsync, and don’t have option to turn it
  787. off programmatically.</p>
  788. <table class="docutils align-default">
  789. <thead>
  790. <tr class="row-odd"><th class="head"><p>CPU</p></th>
  791. <th class="head"><p>Renderer</p></th>
  792. <th class="head"><p>GPU</p></th>
  793. <th class="head"><p>Arch/Compiler/OS</p></th>
  794. <th class="head"><p>Dim</p></th>
  795. <th class="head"><p>Calls</p></th>
  796. </tr>
  797. </thead>
  798. <tbody>
  799. <tr class="row-even"><td><p>i7-920 2.66</p></td>
  800. <td><p>GL2.1</p></td>
  801. <td><p>GTX650Ti</p></td>
  802. <td><p>x64/VS2008/Win7</p></td>
  803. <td><p>38</p></td>
  804. <td><p>64000+</p></td>
  805. </tr>
  806. <tr class="row-odd"><td><p>i5-4250U 1.3</p></td>
  807. <td><p>GL2.1</p></td>
  808. <td><p>HD5000</p></td>
  809. <td><p>x64/Clang/OSX 10.9</p></td>
  810. <td><p>36</p></td>
  811. <td><p>46656</p></td>
  812. </tr>
  813. <tr class="row-even"><td><p>i5-4250U 1.3</p></td>
  814. <td><p>Chrome34</p></td>
  815. <td><p>HD5000</p></td>
  816. <td><p>JIT/Clang/OSX-PNaCl 31</p></td>
  817. <td><p>28</p></td>
  818. <td><p>21952</p></td>
  819. </tr>
  820. <tr class="row-odd"><td><p>i5-4250U 1.3</p></td>
  821. <td><p>Chrome33</p></td>
  822. <td><p>HD5000</p></td>
  823. <td><p>JIT/Clang/OSX-PNaCl 31</p></td>
  824. <td><p>27</p></td>
  825. <td><p>19683</p></td>
  826. </tr>
  827. <tr class="row-even"><td><p>i5-4250U 1.3</p></td>
  828. <td><p>FF28</p></td>
  829. <td><p>HD5000</p></td>
  830. <td><p>JIT/Clang/OSX-asm.js</p></td>
  831. <td><p>25</p></td>
  832. <td><p>15625</p></td>
  833. </tr>
  834. <tr class="row-odd"><td><p>i5-4250U 1.3</p></td>
  835. <td><p>FF36</p></td>
  836. <td><p>HD5000</p></td>
  837. <td><p>JIT/Clang/OSX-asm.js</p></td>
  838. <td><p>25</p></td>
  839. <td><p>15625</p></td>
  840. </tr>
  841. <tr class="row-even"><td><p>i5-4250U 1.3</p></td>
  842. <td><p>Chrome41</p></td>
  843. <td><p>HD5000</p></td>
  844. <td><p>x64/GCC/OSX-NaCl 41</p></td>
  845. <td><p>24</p></td>
  846. <td><p>13824</p></td>
  847. </tr>
  848. <tr class="row-odd"><td><p>i5-4250U 1.3</p></td>
  849. <td><p>FF37</p></td>
  850. <td><p>HD5000</p></td>
  851. <td><p>JIT/Clang/OSX-asm.js</p></td>
  852. <td><p>23</p></td>
  853. <td><p>12167</p></td>
  854. </tr>
  855. <tr class="row-even"><td><p>i5-4250U 1.3</p></td>
  856. <td><p>FF27</p></td>
  857. <td><p>HD5000</p></td>
  858. <td><p>JIT/Clang/OSX-asm.js</p></td>
  859. <td><p>20</p></td>
  860. <td><p>8000</p></td>
  861. </tr>
  862. <tr class="row-odd"><td><p>i7-920 2.66</p></td>
  863. <td><p>Chrome33</p></td>
  864. <td><p>GTX650Ti</p></td>
  865. <td><p>JIT/Clang/W7-PNaCl 31</p></td>
  866. <td><p>20</p></td>
  867. <td><p>8000</p></td>
  868. </tr>
  869. <tr class="row-even"><td><p>i7-920 2.66</p></td>
  870. <td><p>Chrome34</p></td>
  871. <td><p>GTX650Ti</p></td>
  872. <td><p>JIT/Clang/W7-asm.js</p></td>
  873. <td><p>18</p></td>
  874. <td><p>5832</p></td>
  875. </tr>
  876. <tr class="row-odd"><td><p>i7-920 2.66</p></td>
  877. <td><p>Chrome33</p></td>
  878. <td><p>GTX650Ti</p></td>
  879. <td><p>JIT/Clang/W7-asm.js</p></td>
  880. <td><p>18</p></td>
  881. <td><p>5832</p></td>
  882. </tr>
  883. <tr class="row-even"><td><p>i7-920 2.66</p></td>
  884. <td><p>FF28</p></td>
  885. <td><p>GTX650Ti</p></td>
  886. <td><p>JIT/Clang/W7-asm.js</p></td>
  887. <td><p>18</p></td>
  888. <td><p>5832</p></td>
  889. </tr>
  890. <tr class="row-odd"><td><p>i7-920 2.66</p></td>
  891. <td><p>FF27</p></td>
  892. <td><p>GTX650Ti</p></td>
  893. <td><p>JIT/Clang/W7-asm.js</p></td>
  894. <td><p>18</p></td>
  895. <td><p>5832</p></td>
  896. </tr>
  897. <tr class="row-even"><td><p>i5-4250U 1.3</p></td>
  898. <td><p>Safari7</p></td>
  899. <td><p>HD5000</p></td>
  900. <td><p>JIT/Clang/OSX-asm.js</p></td>
  901. <td><p>15</p></td>
  902. <td><p>3375</p></td>
  903. </tr>
  904. </tbody>
  905. </table>
  906. </section>
  907. </section>
  908. <section id="ibl">
  909. <h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/18-ibl">18-ibl</a><a class="headerlink" href="#ibl" title="Link to this heading"></a></h2>
  910. <p>Image-based lighting.</p>
  911. <figure class="align-default">
  912. <img alt="example-18-ibl" src="https://github.com/bkaradzic/bgfx/raw/master/examples/18-ibl/screenshot.png" />
  913. </figure>
  914. </section>
  915. <section id="oit">
  916. <h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/19-oit">19-oit</a><a class="headerlink" href="#oit" title="Link to this heading"></a></h2>
  917. <p>Weighted, Blended Order-Independent Transparency</p>
  918. <figure class="align-default">
  919. <img alt="example-19-oit" src="https://github.com/bkaradzic/bgfx/raw/master/examples/19-oit/screenshot.png" />
  920. </figure>
  921. </section>
  922. <section id="nanovg">
  923. <h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/20-nanovg">20-nanovg</a><a class="headerlink" href="#nanovg" title="Link to this heading"></a></h2>
  924. <p>NanoVG is small antialiased vector graphics rendering library.</p>
  925. <figure class="align-default">
  926. <img alt="example-20-nanovg" src="https://github.com/bkaradzic/bgfx/raw/master/examples/20-nanovg/screenshot.png" />
  927. </figure>
  928. </section>
  929. <section id="deferred">
  930. <h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/21-deferred">21-deferred</a><a class="headerlink" href="#deferred" title="Link to this heading"></a></h2>
  931. <p>MRT rendering and deferred shading.</p>
  932. <figure class="align-default">
  933. <img alt="example-21-deferred" src="https://github.com/bkaradzic/bgfx/raw/master/examples/21-deferred/screenshot.png" />
  934. </figure>
  935. </section>
  936. <section id="windows">
  937. <h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/22-windows">22-windows</a><a class="headerlink" href="#windows" title="Link to this heading"></a></h2>
  938. <p>Rendering into multiple windows.</p>
  939. </section>
  940. <section id="vectordisplay">
  941. <h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/23-vectordisplay">23-vectordisplay</a><a class="headerlink" href="#vectordisplay" title="Link to this heading"></a></h2>
  942. <p>Rendering lines as oldschool vectors.</p>
  943. <figure class="align-default">
  944. <img alt="example-23-vectordisplay" src="https://github.com/bkaradzic/bgfx/raw/master/examples/23-vectordisplay/screenshot.png" />
  945. </figure>
  946. </section>
  947. <section id="nbody">
  948. <h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/24-nbody">24-nbody</a><a class="headerlink" href="#nbody" title="Link to this heading"></a></h2>
  949. <p>N-body simulation with compute shaders using buffers.</p>
  950. <figure class="align-default">
  951. <img alt="example-24-nbody" src="https://github.com/bkaradzic/bgfx/raw/master/examples/24-nbody/screenshot.png" />
  952. </figure>
  953. </section>
  954. <section id="c99">
  955. <h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/25-c99">25-c99</a><a class="headerlink" href="#c99" title="Link to this heading"></a></h2>
  956. <p>Initialization and debug text with C99 API.</p>
  957. </section>
  958. <section id="occlusion">
  959. <h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/26-occlusion">26-occlusion</a><a class="headerlink" href="#occlusion" title="Link to this heading"></a></h2>
  960. <p>Using occlusion query for conditional rendering.</p>
  961. <figure class="align-default">
  962. <img alt="example-26-occlusion" src="https://github.com/bkaradzic/bgfx/raw/master/examples/26-occlusion/screenshot.png" />
  963. </figure>
  964. </section>
  965. <section id="terrain">
  966. <h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/27-terrain">27-terrain</a><a class="headerlink" href="#terrain" title="Link to this heading"></a></h2>
  967. <p>Terrain painting example.</p>
  968. <figure class="align-default">
  969. <img alt="example-27-terrain" src="https://github.com/bkaradzic/bgfx/raw/master/examples/27-terrain/screenshot.png" />
  970. </figure>
  971. </section>
  972. <section id="wireframe">
  973. <h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/28-wireframe">28-wireframe</a><a class="headerlink" href="#wireframe" title="Link to this heading"></a></h2>
  974. <p>Drawing wireframe mesh.</p>
  975. <figure class="align-default">
  976. <img alt="example-28-wireframe" src="https://github.com/bkaradzic/bgfx/raw/master/examples/28-wireframe/screenshot.png" />
  977. </figure>
  978. </section>
  979. <section id="debugdraw">
  980. <h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/29-debugdraw">29-debugdraw</a><a class="headerlink" href="#debugdraw" title="Link to this heading"></a></h2>
  981. <p>Debug draw.</p>
  982. <figure class="align-default">
  983. <img alt="example-29-debugdraw" src="https://github.com/bkaradzic/bgfx/raw/master/examples/29-debugdraw/screenshot.png" />
  984. </figure>
  985. </section>
  986. <section id="picking">
  987. <h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/30-picking">30-picking</a><a class="headerlink" href="#picking" title="Link to this heading"></a></h2>
  988. <p>Mouse picking via GPU readback.</p>
  989. <figure class="align-default">
  990. <img alt="example-30-picking" src="https://github.com/bkaradzic/bgfx/raw/master/examples/30-picking/screenshot.png" />
  991. </figure>
  992. </section>
  993. <section id="rsm">
  994. <h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/31-rsm">31-rsm</a><a class="headerlink" href="#rsm" title="Link to this heading"></a></h2>
  995. <p>Global Illumination with Reflective Shadow Map.</p>
  996. <figure class="align-default">
  997. <img alt="example-31-rsm" src="https://github.com/bkaradzic/bgfx/raw/master/examples/31-rsm/screenshot.png" />
  998. </figure>
  999. </section>
  1000. <section id="particles">
  1001. <h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/32-particles">32-particles</a><a class="headerlink" href="#particles" title="Link to this heading"></a></h2>
  1002. <p>Particles.</p>
  1003. <figure class="align-default">
  1004. <img alt="example-32-particles" src="https://github.com/bkaradzic/bgfx/raw/master/examples/32-particles/screenshot.png" />
  1005. </figure>
  1006. </section>
  1007. <section id="pom">
  1008. <h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/33-pom">33-pom</a><a class="headerlink" href="#pom" title="Link to this heading"></a></h2>
  1009. <p>Parallax occlusion mapping.</p>
  1010. <dl class="simple">
  1011. <dt>Reference(s):</dt><dd><ul class="simple">
  1012. <li><p><a class="reference external" href="http://apoorvaj.io/exploring-bump-mapping-with-webgl.html">Exploring bump mapping with WebGL</a></p></li>
  1013. </ul>
  1014. </dd>
  1015. </dl>
  1016. <figure class="align-default">
  1017. <img alt="example-33-pom" src="https://github.com/bkaradzic/bgfx/raw/master/examples/33-pom/screenshot.png" />
  1018. </figure>
  1019. </section>
  1020. <section id="mvs">
  1021. <h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/34-mvs">34-mvs</a><a class="headerlink" href="#mvs" title="Link to this heading"></a></h2>
  1022. <p>Multiple vertex streams.</p>
  1023. <figure class="align-default">
  1024. <img alt="example-34-mvs" src="https://github.com/bkaradzic/bgfx/raw/master/examples/34-mvs/screenshot.png" />
  1025. </figure>
  1026. </section>
  1027. <section id="dynamic">
  1028. <h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/35-dynamic">35-dynamic</a><a class="headerlink" href="#dynamic" title="Link to this heading"></a></h2>
  1029. <p>Dynamic buffers update.</p>
  1030. <figure class="align-default">
  1031. <img alt="example-35-dynamic" src="https://github.com/bkaradzic/bgfx/raw/master/examples/35-dynamic/screenshot.png" />
  1032. </figure>
  1033. </section>
  1034. <section id="sky">
  1035. <h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/36-sky">36-sky</a><a class="headerlink" href="#sky" title="Link to this heading"></a></h2>
  1036. <p>Perez dynamic sky model.</p>
  1037. <figure class="align-default">
  1038. <img alt="example-36-sky" src="https://github.com/bkaradzic/bgfx/raw/master/examples/36-sky/screenshot.png" />
  1039. </figure>
  1040. </section>
  1041. <section id="gpudrivenrendering">
  1042. <h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/37-gpudrivenrendering">37-gpudrivenrendering</a><a class="headerlink" href="#gpudrivenrendering" title="Link to this heading"></a></h2>
  1043. <p>GPU-Driven Rendering.</p>
  1044. <dl class="simple">
  1045. <dt>Reference(s):</dt><dd><ul class="simple">
  1046. <li><p><a class="reference external" href="https://interplayoflight.wordpress.com/2017/11/15/experiments-in-gpu-based-occlusion-culling/">Experiments in GPU-based occlusion culling</a>,</p></li>
  1047. <li><p><a class="reference external" href="https://interplayoflight.wordpress.com/2018/01/15/experiments-in-gpu-based-occlusion-culling-part-2-multidrawindirect-and-mesh-lodding/">Experiments in GPU-based occlusion culling part 2: MultiDrawIndirect and mesh lodding</a>,</p></li>
  1048. <li><p><a class="reference external" href="https://interplayoflight.wordpress.com/2018/03/05/porting-gpu-driven-occlusion-culling-to-bgfx/">Porting GPU driven occlusion culling to bgfx</a>.</p></li>
  1049. </ul>
  1050. </dd>
  1051. </dl>
  1052. <figure class="align-default">
  1053. <img alt="example-37-gpudrivenrendering" src="https://github.com/bkaradzic/bgfx/raw/master/examples/37-gpudrivenrendering/screenshot.png" />
  1054. </figure>
  1055. </section>
  1056. <section id="bloom">
  1057. <h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/38-bloom">38-bloom</a><a class="headerlink" href="#bloom" title="Link to this heading"></a></h2>
  1058. <p>Bloom.</p>
  1059. <dl class="simple">
  1060. <dt>Reference(s):</dt><dd><ul class="simple">
  1061. <li><p><a class="reference external" href="http://www.iryoku.com/next-generation-post-processing-in-call-of-duty-advanced-warfare">Next Generation Post Processing in Call of Duty: Advanced Warfare</a>.</p></li>
  1062. </ul>
  1063. </dd>
  1064. </dl>
  1065. <figure class="align-default">
  1066. <img alt="example-38-bloom" src="https://github.com/bkaradzic/bgfx/raw/master/examples/38-bloom/screenshot.png" />
  1067. </figure>
  1068. </section>
  1069. <section id="assao">
  1070. <h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/39-assao">39-assao</a><a class="headerlink" href="#assao" title="Link to this heading"></a></h2>
  1071. <p>Adaptive Screen Space Ambient Occlusion.</p>
  1072. <dl class="simple">
  1073. <dt>Reference(s):</dt><dd><ul class="simple">
  1074. <li><p><a class="reference external" href="https://software.intel.com/en-us/articles/adaptive-screen-space-ambient-occlusion">Adaptive Screen Space Ambient Occlusion</a>.</p></li>
  1075. </ul>
  1076. </dd>
  1077. </dl>
  1078. <figure class="align-default">
  1079. <img alt="example-39-assao" src="https://github.com/bkaradzic/bgfx/raw/master/examples/39-assao/screenshot.png" />
  1080. </figure>
  1081. </section>
  1082. <section id="svt">
  1083. <h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/40-svt">40-svt</a><a class="headerlink" href="#svt" title="Link to this heading"></a></h2>
  1084. <p>Sparse Virtual Textures.</p>
  1085. <figure class="align-default">
  1086. <img alt="example-40-svt" src="https://github.com/bkaradzic/bgfx/raw/master/examples/40-svt/screenshot.png" />
  1087. </figure>
  1088. </section>
  1089. <section id="tess">
  1090. <h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/41-tess">41-tess</a><a class="headerlink" href="#tess" title="Link to this heading"></a></h2>
  1091. <p>Adaptive GPU Tessellation with Compute Shaders</p>
  1092. <dl class="simple">
  1093. <dt>Reference(s):</dt><dd><ul class="simple">
  1094. <li><p><a class="reference external" href="http://onrendering.com/data/papers/isubd/isubd.pdf">Adaptive GPU Tessellation with Compute Shaders by Jad Khoury, Jonathan Dupuy, and Christophe Riccio</a>.</p></li>
  1095. </ul>
  1096. </dd>
  1097. </dl>
  1098. <figure class="align-default">
  1099. <img alt="example-41-tess" src="https://github.com/bkaradzic/bgfx/raw/master/examples/41-tess/screenshot.png" />
  1100. </figure>
  1101. </section>
  1102. <section id="bunnylod">
  1103. <h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/42-bunnylod">42-bunnylod</a><a class="headerlink" href="#bunnylod" title="Link to this heading"></a></h2>
  1104. <p>Simple Polygon Reduction</p>
  1105. <dl class="simple">
  1106. <dt>Reference(s):</dt><dd><ul class="simple">
  1107. <li><p><a class="reference external" href="https://web.archive.org/web/20020114194131/http://www.melax.com/polychop/">Simple Polygon Reduction</a>.</p></li>
  1108. <li><p><a class="reference external" href="https://web.archive.org/web/20031204035320/http://www.melax.com/polychop/gdmag.pdf">A Simple, Fast,and Effective Polygon Reduction Algorithm</a>.</p></li>
  1109. </ul>
  1110. </dd>
  1111. </dl>
  1112. <figure class="align-default">
  1113. <img alt="example-42-bunnylod" src="https://github.com/bkaradzic/bgfx/raw/master/examples/42-bunnylod/screenshot.png" />
  1114. </figure>
  1115. </section>
  1116. <section id="denoise">
  1117. <h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/43-denoise">43-denoise</a><a class="headerlink" href="#denoise" title="Link to this heading"></a></h2>
  1118. <p>Denoise</p>
  1119. <dl class="simple">
  1120. <dt>Reference(s):</dt><dd><ul class="simple">
  1121. <li><p><a class="reference external" href="https://web.archive.org/web/20170720213354/https://research.nvidia.com/sites/default/files/pubs/2017-07_Spatiotemporal-Variance-Guided-Filtering%3A/svgf_preprint.pdf">Spatiotemporal Variance-Guided Filtering: Real-Time Reconstruction for Path-Traced Global Illumination.</a>.</p></li>
  1122. <li><p><a class="reference external" href="https://web.archive.org/web/20200807211002/https://software.intel.com/content/www/us/en/develop/articles/streaming-g-buffer-compression-for-multi-sample-anti-aliasing.html">Streaming G-Buffer Compression for Multi-Sample Anti-Aliasing</a>.</p></li>
  1123. <li><p><a class="reference external" href="https://web.archive.org/web/20130412085423/https://www.uni-ulm.de/fileadmin/website_uni_ulm/iui.inst.100/institut/Papers/atrousGIfilter.pdf">Edge-Avoiding À-Trous Wavelet Transform for fast Global Illumination Filtering</a>.</p></li>
  1124. </ul>
  1125. </dd>
  1126. </dl>
  1127. <figure class="align-default">
  1128. <img alt="example-43-denoise" src="https://github.com/bkaradzic/bgfx/raw/master/examples/43-denoise/screenshot.png" />
  1129. </figure>
  1130. </section>
  1131. <section id="sss">
  1132. <h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/44-sss">44-sss</a><a class="headerlink" href="#sss" title="Link to this heading"></a></h2>
  1133. <p>Screen-Space Shadows</p>
  1134. <figure class="align-default">
  1135. <img alt="example-44-sss" src="https://github.com/bkaradzic/bgfx/raw/master/examples/44-sss/screenshot.png" />
  1136. </figure>
  1137. </section>
  1138. <section id="bokeh">
  1139. <h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/45-bokeh">45-bokeh</a><a class="headerlink" href="#bokeh" title="Link to this heading"></a></h2>
  1140. <p>Bokeh Depth of Field</p>
  1141. <dl class="simple">
  1142. <dt>Reference(s):</dt><dd><ul class="simple">
  1143. <li><p><a class="reference external" href="https://web.archive.org/web/20201215123940/https://blog.tuxedolabs.com/2018/05/04/bokeh-depth-of-field-in-single-pass.html">Bokeh depth of field in a single pass</a>.</p></li>
  1144. </ul>
  1145. </dd>
  1146. </dl>
  1147. <figure class="align-default">
  1148. <img alt="example-45-bokeh" src="https://github.com/bkaradzic/bgfx/raw/master/examples/45-bokeh/screenshot.png" />
  1149. </figure>
  1150. </section>
  1151. <section id="fsr">
  1152. <h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/46-fsr">46-fsr</a><a class="headerlink" href="#fsr" title="Link to this heading"></a></h2>
  1153. <p>AMD FidelityFX Super Resolution - high-quality solution for producing high resolution frames
  1154. from lower resolution inputs.</p>
  1155. <figure class="align-default">
  1156. <img alt="example-46-fsr" src="https://github.com/bkaradzic/bgfx/raw/master/examples/46-fsr/screenshot.png" />
  1157. </figure>
  1158. </section>
  1159. <section id="pixelformats">
  1160. <h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/47-pixelformats">47-pixelformats</a><a class="headerlink" href="#pixelformats" title="Link to this heading"></a></h2>
  1161. <p>Pixel Formats</p>
  1162. <p>View and test texture formats</p>
  1163. <figure class="align-default">
  1164. <img alt="example-47-pixelformats" src="https://github.com/bkaradzic/bgfx/raw/master/examples/47-pixelformats/screenshot.png" />
  1165. </figure>
  1166. </section>
  1167. <section id="drawindirect">
  1168. <h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/48-drawindirect">48-drawindirect</a><a class="headerlink" href="#drawindirect" title="Link to this heading"></a></h2>
  1169. <p>Draw Indirect</p>
  1170. <p>Simple example of indirect rendering + an implementation of multidraw indirect</p>
  1171. <dl class="simple">
  1172. <dt>Reference(s):</dt><dd><ul class="simple">
  1173. <li><p><a class="reference external" href="https://web.archive.org/web/20201109155619/https://litasa.github.io/blog/2017/09/04/OpenGL-MultiDrawIndirect-with-Individual-Textures">OpenGL MultiDrawIndirect with per-instance textures</a>.</p></li>
  1174. <li><p><a class="reference external" href="https://web.archive.org/web/20210926073337/https://cpp-rendering.io/indirect-rendering">Indirect Rendering - A way to a million draw calls</a>.</p></li>
  1175. </ul>
  1176. </dd>
  1177. </dl>
  1178. <figure class="align-default">
  1179. <img alt="example-48-drawindirect" src="https://github.com/bkaradzic/bgfx/raw/master/examples/48-drawindirect/screenshot.png" />
  1180. </figure>
  1181. </section>
  1182. <section id="hextile">
  1183. <h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/49-hextile">49-hextile</a><a class="headerlink" href="#hextile" title="Link to this heading"></a></h2>
  1184. <p>Realtime Hex-Tiling</p>
  1185. <p>Simple example of how to use Hex-tiling in real time, ported from <a class="reference external" href="https://github.com/mmikk/hextile-demo">https://github.com/mmikk/hextile-demo</a></p>
  1186. <dl class="simple">
  1187. <dt>Reference(s):</dt><dd><ul class="simple">
  1188. <li><p><a class="reference external" href="https://github.com/mmikk/hextile-demo">Hex-Tiling demo</a>.</p></li>
  1189. <li><p><a class="reference external" href="https://github.com/mmikk/mmikk.github.io/blob/master/papers3d/mm_hex_compressed.pdf">Paper explaining concepts -</a>.</p></li>
  1190. </ul>
  1191. </dd>
  1192. </dl>
  1193. <figure class="align-default">
  1194. <img alt="example-49-hextile" src="https://github.com/bkaradzic/bgfx/raw/master/examples/49-hextile/screenshot.png" />
  1195. </figure>
  1196. </section>
  1197. <section id="headless">
  1198. <h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/50-headless">50-headless</a><a class="headerlink" href="#headless" title="Link to this heading"></a></h2>
  1199. <p>Demonstrate running bgfx in headless mode. Initialize bgfx without window, render into frame buffer,
  1200. and output result into an image.</p>
  1201. </section>
  1202. </section>
  1203. </div>
  1204. </div>
  1205. <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
  1206. <a href="build.html" class="btn btn-neutral float-left" title="Building" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
  1207. <a href="bgfx.html" class="btn btn-neutral float-right" title="API Reference" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
  1208. </div>
  1209. <hr/>
  1210. <div role="contentinfo">
  1211. <p>&#169; Copyright 2010-2025, Branimir Karadžić.</p>
  1212. </div>
  1213. </footer>
  1214. </div>
  1215. </div>
  1216. </section>
  1217. </div>
  1218. <script>
  1219. jQuery(function () {
  1220. SphinxRtdTheme.Navigation.enable(true);
  1221. });
  1222. </script>
  1223. </body>
  1224. </html>