bgfx/overview.html
Branimir Karadžić 9897d8fd64 Updated docs.
2017-10-22 18:19:10 -07:00

624 lines
27 KiB
HTML

<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Overview &mdash; bgfx 1.0 documentation</title>
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="index" title="Index"
href="genindex.html"/>
<link rel="search" title="Search" href="search.html"/>
<link rel="top" title="bgfx 1.0 documentation" href="index.html"/>
<link rel="next" title="Building" href="build.html"/>
<link rel="prev" title="Documentation" href="index.html"/>
<script src="_static/js/modernizr.min.js"></script>
</head>
<body class="wy-body-for-nav" role="document">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search">
<a href="index.html" class="icon icon-home"> bgfx
</a>
<div class="version">
1.0
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<ul class="current">
<li class="toctree-l1 current"><a class="current reference internal" href="#">Overview</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#what-is-it">What is it?</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#supported-rendering-backends">Supported rendering backends</a></li>
<li class="toctree-l3"><a class="reference internal" href="#supported-hmd">Supported HMD</a></li>
<li class="toctree-l3"><a class="reference internal" href="#supported-platforms">Supported Platforms</a></li>
<li class="toctree-l3"><a class="reference internal" href="#supported-compilers">Supported Compilers</a></li>
<li class="toctree-l3"><a class="reference internal" href="#supported-languages">Supported Languages</a></li>
<li class="toctree-l3"><a class="reference internal" href="#project-page">Project Page</a></li>
<li class="toctree-l3"><a class="reference internal" href="#contact">Contact</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#internals">Internals</a></li>
<li class="toctree-l2"><a class="reference internal" href="#customization">Customization</a></li>
<li class="toctree-l2"><a class="reference internal" href="#debugging-and-profiling">Debugging and Profiling</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#renderdoc">RenderDoc</a></li>
<li class="toctree-l3"><a class="reference internal" href="#intelgpa">IntelGPA</a></li>
<li class="toctree-l3"><a class="reference internal" href="#other-debuggers-and-profilers">Other Debuggers and Profilers</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#sdl-glfw-etc">SDL, GLFW, etc.</a></li>
<li class="toctree-l2"><a class="reference internal" href="#todo">Todo</a></li>
<li class="toctree-l2"><a class="reference internal" href="#getting-involved">Getting Involved</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#contributors">Contributors</a></li>
<li class="toctree-l3"><a class="reference internal" href="#repository-visualization">Repository visualization</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="build.html">Building</a></li>
<li class="toctree-l1"><a class="reference internal" href="examples.html">Examples</a></li>
<li class="toctree-l1"><a class="reference internal" href="bgfx.html">API Reference</a></li>
<li class="toctree-l1"><a class="reference internal" href="tools.html">Tools</a></li>
<li class="toctree-l1"><a class="reference internal" href="license.html">License</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" role="navigation" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="index.html">bgfx</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html">Docs</a> &raquo;</li>
<li>Overview</li>
<li class="wy-breadcrumbs-aside">
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<div class="section" id="overview">
<h1>Overview<a class="headerlink" href="#overview" title="Permalink to this headline"></a></h1>
<div class="section" id="what-is-it">
<h2>What is it?<a class="headerlink" href="#what-is-it" title="Permalink to this headline"></a></h2>
<p>Cross-platform, graphics API agnostic, &#8220;Bring Your Own Engine/Framework&#8221; style rendering library,
licensed under permissive BSD-2 clause open source license.</p>
<p>
<iframe src="https://ghbtns.com/github-btn.html?user=bkaradzic&repo=bgfx&type=star&count=true&size=large" frameborder="0" scrolling="0" width="160px" height="30px"></iframe>
<iframe src="https://ghbtns.com/github-btn.html?user=bkaradzic&repo=bgfx&type=fork&count=true&size=large" frameborder="0" scrolling="0" width="158px" height="30px"></iframe>
</p><div class="section" id="supported-rendering-backends">
<h3>Supported rendering backends<a class="headerlink" href="#supported-rendering-backends" title="Permalink to this headline"></a></h3>
<ul class="simple">
<li>Direct3D 9</li>
<li>Direct3D 11</li>
<li>Direct3D 12 (WIP)</li>
<li>Metal (WIP)</li>
<li>OpenGL 2.1</li>
<li>OpenGL 3.1+</li>
<li>OpenGL ES 2</li>
<li>OpenGL ES 3.1</li>
<li>WebGL 1.0</li>
<li>WebGL 2.0</li>
</ul>
</div>
<div class="section" id="supported-hmd">
<h3>Supported HMD<a class="headerlink" href="#supported-hmd" title="Permalink to this headline"></a></h3>
<ul class="simple">
<li>OculusVR (1.3.0)</li>
</ul>
</div>
<div class="section" id="supported-platforms">
<h3>Supported Platforms<a class="headerlink" href="#supported-platforms" title="Permalink to this headline"></a></h3>
<ul class="simple">
<li>Android (14+, ARM, x86, MIPS)</li>
<li>asm.js/Emscripten (1.25.0)</li>
<li>FreeBSD</li>
<li>iOS (iPhone, iPad, AppleTV)</li>
<li>Linux</li>
<li>MIPS Creator CI20</li>
<li>OSX (10.9+)</li>
<li>RaspberryPi</li>
<li>SteamLink</li>
<li>Windows (XP, Vista, 7, 8, 10)</li>
<li>WinRT (WinPhone 8.0+)</li>
</ul>
</div>
<div class="section" id="supported-compilers">
<h3>Supported Compilers<a class="headerlink" href="#supported-compilers" title="Permalink to this headline"></a></h3>
<ul class="simple">
<li>Clang 3.3 and above</li>
<li>GCC 4.6 and above</li>
<li>vs2015 and above</li>
</ul>
</div>
<div class="section" id="supported-languages">
<h3>Supported Languages<a class="headerlink" href="#supported-languages" title="Permalink to this headline"></a></h3>
<ul class="simple">
<li><a class="reference external" href="https://bkaradzic.github.io/bgfx/bgfx.html">C/C++ API documentation</a></li>
<li><a class="reference external" href="https://github.com/MikePopoloski/SharpBgfx">C#/VB/F# language API bindings</a></li>
<li><a class="reference external" href="https://github.com/DerelictOrg/DerelictBgfx">D language API bindings</a></li>
<li><a class="reference external" href="https://github.com/james4k/go-bgfx">Go language API bindings</a></li>
<li><a class="reference external" href="https://github.com/haskell-game/bgfx">Haskell language API bindings</a></li>
<li><a class="reference external" href="https://github.com/LWJGL/lwjgl3#lwjgl---lightweight-java-game-library-3">Lightweight Java Game Library 3 bindings</a></li>
<li><a class="reference external" href="https://github.com/excessive/lua-bgfx">Lua language API bindings 1</a></li>
<li><a class="reference external" href="https://github.com/cloudwu/lua-bgfx">Lua language API bindings 2</a></li>
<li><a class="reference external" href="https://github.com/Halsys/nim-bgfx">Nim language API bindings</a></li>
<li><a class="reference external" href="https://github.com/jnadro/pybgfx#pybgfx">Python language API bindings</a></li>
<li><a class="reference external" href="https://github.com/rhoot/bgfx-rs#bgfx-rs">Rust language API bindings</a></li>
<li><a class="reference external" href="https://github.com/stuartcarnie/SwiftBGFX">Swift language API bindings</a></li>
</ul>
</div>
<div class="section" id="project-page">
<h3>Project Page<a class="headerlink" href="#project-page" title="Permalink to this headline"></a></h3>
<ul class="simple">
<li><a class="reference external" href="https://github.com/bkaradzic/bgfx">https://github.com/bkaradzic/bgfx</a></li>
</ul>
</div>
<div class="section" id="contact">
<h3>Contact<a class="headerlink" href="#contact" title="Permalink to this headline"></a></h3>
<blockquote>
<div><ul class="simple">
<li>Twitter <a class="reference external" href="https://twitter.com/bkaradzic">&#64;bkaradzic</a></li>
<li>GitHub <a class="reference external" href="https://github.com/bkaradzic">&#64;bkaradzic</a></li>
</ul>
</div></blockquote>
</div>
</div>
<div class="section" id="internals">
<h2>Internals<a class="headerlink" href="#internals" title="Permalink to this headline"></a></h2>
<p>bgfx is using sort-based draw call bucketing. This means that submission
order doesn&#8217;t necessarily match the rendering order, but on the
low-level they will be sorted and ordered correctly. On the high level
this allows more optimal way of submitting draw calls for all passes at
one place, and on the low-level this allows better optimization of
rendering order. This sometimes creates undesired results usually for
GUI rendering, where draw order should usually match submit order. bgfx
provides way to enable sequential rendering for these cases (see
<code class="docutils literal"><span class="pre">bgfx::setViewMode</span></code>).</p>
<p>Internally all low-level rendering draw calls are issued inside single
function <code class="docutils literal"><span class="pre">RendererContextI::submit</span></code>. This function exist inside each
renderer backend implementation.</p>
<blockquote>
<div><ul class="simple">
<li>More detailed description of sort-based draw call bucketing can be found at: <a class="reference external" href="http://realtimecollisiondetection.net/blog/?p=86">Order your graphics draw calls around!</a></li>
<li>High level overview of bgfx, presented at EclipseCon 2016: <a class="reference external" href="https://www.eclipsecon.org/na2016/session/dark-side-moon-gpu-programming-bgfx-and-eclipse">From the Dark Side of the Moon: GPU Programming with BGFX and Eclipse, Tony McCrary [l33t labs]</a>, Slides: [<a class="reference external" href="https://www.eclipsecon.org/na2016/sites/default/files/slides/FromTheDarkSideOfTheMoon_BGFX.pdf">PDF</a>]</li>
</ul>
</div></blockquote>
</div>
<div class="section" id="customization">
<h2>Customization<a class="headerlink" href="#customization" title="Permalink to this headline"></a></h2>
<p>By default each platform has sane default values. For example on Windows
default renderer is DirectX9, and on Linux it is OpenGL 2.1. On Windows
platform all rendering backends are available. For OpenGL ES on desktop
you can find more information at:- <a class="reference external" href="http://www.g-truc.net/post-0457.html">OpenGL ES 2.0 and EGL on
desktop</a></p>
<p>If you&#8217;re targeting specific mobile hardware, you can find GLES support
in their official SDKs: <a class="reference external" href="http://developer.qualcomm.com/mobile-development/mobile-technologies/gaming-graphics-optimization-adreno/tools-and-resources">Adreno
SDK</a>,
<a class="reference external" href="http://www.malideveloper.com/">Mali SDK</a>, <a class="reference external" href="http://www.imgtec.com/powervr/insider/sdkdownloads/">PowerVR
SDK</a>.</p>
<p>All configuration settings are located inside
<a class="reference external" href="https://github.com/bkaradzic/bgfx/blob/master/src/config.h">src/config.h</a>.</p>
<p>Every <code class="docutils literal"><span class="pre">BGFX_CONFIG_*</span></code> setting can be changed by passing defines thru
compiler switches. For example setting preprocessor define
<code class="docutils literal"><span class="pre">BGFX_CONFIG_RENDERER_OPENGL=1</span></code> will change backend renderer to OpenGL
2.1. on Windows. Since rendering APIs are platform specific, this
obviously won&#8217;t work nor make sense in all cases.</p>
</div>
<div class="section" id="debugging-and-profiling">
<h2>Debugging and Profiling<a class="headerlink" href="#debugging-and-profiling" title="Permalink to this headline"></a></h2>
<div class="section" id="renderdoc">
<h3>RenderDoc<a class="headerlink" href="#renderdoc" title="Permalink to this headline"></a></h3>
<p>Loading of RenderDoc is integrated in bgfx when using DX11 or OpenGL
renderer. You can drop in <code class="docutils literal"><span class="pre">renderdoc.dll</span></code> from RenderDoc distribution
into working directory, and it will be automatically loaded during bgfx
initialization. This allows frame capture at any time by pressing
<strong>F11</strong>.</p>
<p>Download: <a class="reference external" href="https://renderdoc.org/builds">RenderDoc</a></p>
<p>RenderDoc <a class="reference external" href="https://renderdoc.org/docs/how/index.html">How do I ...?</a> documentation.</p>
</div>
<div class="section" id="intelgpa">
<h3>IntelGPA<a class="headerlink" href="#intelgpa" title="Permalink to this headline"></a></h3>
<p>Right click <strong>Intel GPA Monitor</strong> tray icon, choose preferences, check
&#8220;Auto-detect launched applications&#8221; option. Find <code class="docutils literal"><span class="pre">InjectionList.txt</span></code>
in GPA directory and add <code class="docutils literal"><span class="pre">examples-*</span></code> to the list.</p>
<p>Download:
<a class="reference external" href="https://software.intel.com/en-us/vcsource/tools/intel-gpa">IntelGPA</a></p>
</div>
<div class="section" id="other-debuggers-and-profilers">
<h3>Other Debuggers and Profilers<a class="headerlink" href="#other-debuggers-and-profilers" title="Permalink to this headline"></a></h3>
<table border="1" class="docutils">
<colgroup>
<col width="15%" />
<col width="20%" />
<col width="8%" />
<col width="9%" />
<col width="7%" />
<col width="8%" />
<col width="7%" />
<col width="7%" />
<col width="8%" />
<col width="9%" />
</colgroup>
<thead valign="bottom">
<tr class="row-odd"><th class="head">Name</th>
<th class="head">OS</th>
<th class="head">DX9</th>
<th class="head">DX11</th>
<th class="head">DX12</th>
<th class="head">Metal</th>
<th class="head">GL</th>
<th class="head">GLES</th>
<th class="head">Vulkan</th>
<th class="head">Source</th>
</tr>
</thead>
<tbody valign="top">
<tr class="row-even"><td>APITrace</td>
<td>Linux/OSX/Win</td>
<td></td>
<td></td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td></td>
<td></td>
<td>&nbsp;</td>
<td></td>
</tr>
<tr class="row-odd"><td>CodeXL</td>
<td>Linux/Win</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td></td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr class="row-even"><td>Dissector</td>
<td>Win</td>
<td></td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td></td>
</tr>
<tr class="row-odd"><td>PerfStudio</td>
<td>Win</td>
<td>&nbsp;</td>
<td></td>
<td></td>
<td>&nbsp;</td>
<td></td>
<td></td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr class="row-even"><td>IntelGPA</td>
<td>Linux/OSX/Win</td>
<td></td>
<td></td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td></td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr class="row-odd"><td>Nsight</td>
<td>Win</td>
<td></td>
<td></td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td></td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr class="row-even"><td>PerfHUD</td>
<td>Win</td>
<td></td>
<td></td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr class="row-odd"><td>RenderDoc</td>
<td>Win/Linux</td>
<td>&nbsp;</td>
<td></td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td></td>
<td>&nbsp;</td>
<td></td>
<td></td>
</tr>
<tr class="row-even"><td>vogl</td>
<td>Linux</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td></td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td></td>
</tr>
</tbody>
</table>
<p>Download:</p>
<ul class="simple">
<li><a class="reference external" href="https://apitrace.github.io/">APITrace</a></li>
<li><a class="reference external" href="http://developer.amd.com/tools-and-sdks/opencl-zone/codexl/">CodeXL</a></li>
<li><a class="reference external" href="https://github.com/imccown/Dissector">Dissector</a></li>
<li><a class="reference external" href="http://developer.amd.com/tools-and-sdks/graphics-development/gpu-perfstudio/">GPU PerfStudio</a></li>
<li><a class="reference external" href="https://developer.nvidia.com/linux-graphics-debugger">Linux Graphics Debugger</a></li>
<li><a class="reference external" href="https://developer.nvidia.com/nvidia-nsight-visual-studio-edition">Nsight</a></li>
<li><a class="reference external" href="https://developer.nvidia.com/nvidia-perfhud">PerfHUD</a></li>
<li><a class="reference external" href="https://github.com/ValveSoftware/vogl">vogl</a></li>
</ul>
</div>
</div>
<div class="section" id="sdl-glfw-etc">
<h2>SDL, GLFW, etc.<a class="headerlink" href="#sdl-glfw-etc" title="Permalink to this headline"></a></h2>
<p>It is possible to use bgfx with SDL, GLFW and similar cross platform
windowing libraries. The main requirement is that windowing library
provides access to native window handle that&#8217;s used to create Direct3D
device or OpenGL context.</p>
<p>For more info see: <a class="reference internal" href="bgfx.html"><span class="doc">API Reference</span></a>.</p>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">You can use <code class="docutils literal"><span class="pre">--with-sdl</span></code> when runnning GENie to enable SDL2 integration with examples:
<code class="docutils literal"><span class="pre">genie</span> <span class="pre">--with-sdl</span> <span class="pre">vs2012</span></code></p>
</div>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last"><code class="docutils literal"><span class="pre">--with-glfw</span></code> is also available, but it&#8217;s just simple stub to be used to test GLFW
integration API.</p>
</div>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">Special care is necessary to make custom windowing to work with multithreaded renderer.
Each platform has rules about where renderer can be and how multithreading interacts
with context/device. To disable multithreaded render use <code class="docutils literal"><span class="pre">BGFX_CONFIG_MULTITHREDED=0</span></code>
preprocessor define.</p>
</div>
</div>
<div class="section" id="todo">
<h2>Todo<a class="headerlink" href="#todo" title="Permalink to this headline"></a></h2>
<ul class="simple">
<li>Fullscreen mode.</li>
<li>ETC2, PVRTC1/2 decoding fallback for targets that don&#8217;t support it
natively.</li>
<li>shaderc as library for runtime shader building.</li>
<li>Multiple vertex streams support.</li>
<li>Animated mesh example.</li>
<li>Vulkan renderer backend.</li>
</ul>
</div>
<div class="section" id="getting-involved">
<h2>Getting Involved<a class="headerlink" href="#getting-involved" title="Permalink to this headline"></a></h2>
<p>Everyone is welcome to contribute to bgfx by submitting bug reports, testing on different
platforms, writing examples, improving documentation, profiling and optimizing, etc.</p>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last"><strong>When contributing to the bgfx project you must agree to the BSD 2-clause
licensing terms.</strong></p>
</div>
<div class="section" id="contributors">
<h3>Contributors<a class="headerlink" href="#contributors" title="Permalink to this headline"></a></h3>
<p>Chrnonological order:</p>
<blockquote>
<div><ul class="simple">
<li>Branimir Karadžić (<a class="reference external" href="https://github.com/bkaradzic">&#64;bkaradzic</a>)</li>
<li>Garett Bass (<a class="reference external" href="https://github.com/gtbass">&#64;gtbass</a>) - OSX port.</li>
<li>Jeremie Roy (<a class="reference external" href="https://github.com/jeremieroy">&#64;jeremieroy</a>) - Font system and examples.</li>
<li>Miloš Tošić (<a class="reference external" href="https://github.com/milostosic">&#64;milostosic</a>) - 12-lod example.</li>
<li>Dario Manesku (<a class="reference external" href="https://github.com/dariomanesku">&#64;dariomanesku</a>) - 13-stencil,
14-shadowvolumes, 15-shadowmaps-simple, 16-shadowmaps, 18-ibl, 28-wireframe.</li>
<li>James Gray (<a class="reference external" href="https://github.com/james4k">&#64;james4k</a>) - Go language API bindings.</li>
<li>Guillaume Piolat (<a class="reference external" href="https://github.com/p0nce">&#64;p0nce</a>) - D language API bindings.</li>
<li>Mike Popoloski (<a class="reference external" href="https://github.com/MikePopoloski">&#64;MikePopoloski</a>) - C#/VB/F# language API
bindings, WinRT/WinPhone support.</li>
<li>Kai Jourdan (<a class="reference external" href="https://github.com/questor">&#64;questor</a>) - 23-vectordisplay example</li>
<li>Stanlo Slasinski (<a class="reference external" href="https://github.com/stanlo">&#64;stanlo</a>) - 24-nbody example</li>
<li>Daniel Collin (<a class="reference external" href="https://github.com/emoon">&#64;emoon</a>) - Port of Ocornut&#8217;s ImGui to bgfx.</li>
<li>Andre Weissflog (<a class="reference external" href="https://github.com/floooh">&#64;floooh</a>) - Alternative build system fips.</li>
<li>Andrew Johnson (<a class="reference external" href="https://github.com/ajohnson23">&#64;ajohnson23</a>) - TeamCity build.</li>
<li>Tony McCrary (<a class="reference external" href="https://github.com/enleeten">&#64;enleeten</a>) - Java language API bindings.</li>
<li>Attila Kocsis (<a class="reference external" href="https://github.com/attilaz">&#64;attilaz</a>) - Metal rendering backend, various OSX
and iOS improvements and bug fixes.</li>
<li>Richard Gale (<a class="reference external" href="https://github.com/RichardGale">&#64;RichardGale</a>) - Emscripten entry input
handling.</li>
<li>Andrew Mac (<a class="reference external" href="https://github.com/andr3wmac">&#64;andr3wmac</a>) - 27-terrain.</li>
<li>Oliver Charles (<a class="reference external" href="https://github.com/ocharles">&#64;ocharles</a>) - Haskel language API bindings.</li>
<li>Johan Sköld (<a class="reference external" href="https://github.com/rhoot">&#64;rhoot</a>) - Rust language API bindings.</li>
<li>Jean-François Verdon (<a class="reference external" href="https://github.com/Nodrev">&#64;Nodrev</a>) - Alternative deployment for
Android.</li>
<li>Jason Nadro (<a class="reference external" href="https://github.com/jnadro">&#64;jnadro</a>) - Python language API bindings.</li>
<li>Krzysztof Kondrak (<a class="reference external" href="https://github.com/kondrak">&#64;kondrak</a>) - OculusVR integration.</li>
<li>Colby Klein (<a class="reference external" href="https://github.com/excessive">&#64;excessive</a>) - Lua language API bindings.</li>
<li>Stuart Carnie (<a class="reference external" href="https://github.com/stuartcarnie">&#64;stuartcarnie</a>) - Swift language API
bindings.</li>
<li>Joseph Cherlin (<a class="reference external" href="https://github.com/jcherlin">&#64;jcherlin</a>) - 30-picking, and 31-rsm example.</li>
<li>Olli Wang (<a class="reference external" href="https://github.com/olliwang">&#64;olliwang</a>) - Various NanoVG integration improvements.</li>
<li>Cory Golden (<a class="reference external" href="https://github.com/Halsys">&#64;Halsys</a>) - Nim language API bindings.</li>
<li>Camilla Berglund (<a class="reference external" href="https://github.com/elmindreda">&#64;elmindreda</a>) - GLFW support.</li>
<li>Daniel Ludwig (<a class="reference external" href="https://github.com/code-disaster">&#64;code-disaster</a>) - Lightweight Java Game
Library 3 bindings.</li>
<li>Benoit Jacquier (<a class="reference external" href="https://github.com/benoitjacquier">&#64;benoitjacquier</a>) - Added support for
cubemap as texture 2D array in a compute shader.</li>
<li>Apoorva Joshi (<a class="reference external" href="https://github.com/ApoorvaJ">&#64;ApoorvaJ</a>) - 33-pom example.</li>
<li>Stanislav Pidhorsky (<a class="reference external" href="https://github.com/podgorskiy">&#64;podgorskiy</a>) - 36-sky example.</li>
<li>云风 (<a class="reference external" href="https://github.com/cloudwu">&#64;cloudwu</a>) - Alternative Lua bindings.</li>
</ul>
</div></blockquote>
</div>
<div class="section" id="repository-visualization">
<h3>Repository visualization<a class="headerlink" href="#repository-visualization" title="Permalink to this headline"></a></h3>
<p>
<iframe width="694" height="390" src="https://www.youtube.com/embed/5ZeN_d_-BHo" frameborder="0" allowfullscreen></iframe>
</p></div>
</div>
</div>
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="build.html" class="btn btn-neutral float-right" title="Building" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="index.html" class="btn btn-neutral" title="Documentation" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright 2010-2017, Branimir Karadžić.
</p>
</div>
</footer>
</div>
</div>
</section>
</div>
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT:'./',
VERSION:'1.0',
COLLAPSE_INDEX:false,
FILE_SUFFIX:'.html',
HAS_SOURCE: false
};
</script>
<script type="text/javascript" src="_static/jquery.js"></script>
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<script type="text/javascript" src="_static/js/theme.js"></script>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.StickyNav.enable();
});
</script>
</body>
</html>