2012-04-03 23:30:07 -04:00
|
|
|
bgfx
|
|
|
|
====
|
|
|
|
|
2012-06-27 23:49:45 -04:00
|
|
|
Cross-platform rendering library.
|
2012-06-02 13:59:47 -04:00
|
|
|
|
2012-11-10 22:59:23 -05:00
|
|
|
Supported rendering backends:
|
2012-06-02 13:59:47 -04:00
|
|
|
|
2012-11-10 22:59:23 -05:00
|
|
|
* OpenGL 2.1
|
|
|
|
* OpenGL ES 2
|
|
|
|
* OpenGL ES 3
|
|
|
|
* Direct3D 9
|
|
|
|
* Direct3D 11
|
|
|
|
|
|
|
|
Platforms:
|
|
|
|
|
|
|
|
* Windows
|
|
|
|
* Linux
|
|
|
|
* Android
|
|
|
|
* Native Client
|
|
|
|
* JavaScript (via Emscripten)
|
2012-04-03 23:30:07 -04:00
|
|
|
|
2012-06-27 23:49:45 -04:00
|
|
|
Dependencies
|
|
|
|
------------
|
|
|
|
|
|
|
|
[https://github.com/bkaradzic/bx](https://github.com/bkaradzic/bx)
|
|
|
|
|
|
|
|
Optional:
|
|
|
|
[https://github.com/mendsley/tinystl](https://github.com/mendsley/tinystl)
|
|
|
|
|
2012-11-04 18:26:27 -05:00
|
|
|
Building
|
|
|
|
--------
|
|
|
|
|
2012-11-11 21:19:42 -05:00
|
|
|
### Prerequsites
|
|
|
|
|
|
|
|
Premake 4.4 beta4
|
|
|
|
[http://industriousone.com/premake/download](http://industriousone.com/premake/download)
|
|
|
|
|
|
|
|
GNU make. Windows users download GNU make utility from:
|
|
|
|
[http://gnuwin32.sourceforge.net/packages/make.htm](http://gnuwin32.sourceforge.net/packages/make.htm)
|
|
|
|
|
|
|
|
### Getting source
|
2012-11-04 18:26:27 -05:00
|
|
|
|
|
|
|
git clone git://github.com/bkaradzic/bx.git
|
|
|
|
git clone git://github.com/bkaradzic/bgfx.git
|
|
|
|
cd bgfx
|
|
|
|
make
|
|
|
|
|
2012-11-11 21:19:42 -05:00
|
|
|
After calling make, .build/projects/* directory will be generated. All
|
|
|
|
intermediate files generated by compiler will be inside .build directory
|
|
|
|
structure. Deleting .build directory at any time is safe.
|
|
|
|
|
|
|
|
### Building for Windows
|
|
|
|
|
|
|
|
When building on Windows, you have to set DXSDK_DIR environment variable to
|
|
|
|
point to DirectX SDK directory.
|
|
|
|
|
|
|
|
setx DXSDK_DIR <path to DirectX SDK directory>
|
|
|
|
|
|
|
|
If you're building with MinGW/TDM compiler on Windows make DirectX SDK
|
|
|
|
directory link to directory without spaces in the path.
|
|
|
|
|
|
|
|
mklink /D <path to DirectX SDK directory> c:\dxsdk
|
|
|
|
setx DXSDK_DIR c:\dxsdk
|
|
|
|
|
|
|
|
### Building for Native Client (Pepper 22) on Windows
|
|
|
|
|
|
|
|
Download Native Client SDK from
|
|
|
|
[https://developers.google.com/native-client/sdk/download](https://developers.google.com/native-client/sdk/download)
|
|
|
|
|
|
|
|
setx NACL_DIR <path to Native Client SDK directory>
|
|
|
|
|
|
|
|
### Building
|
2012-11-04 18:26:27 -05:00
|
|
|
|
|
|
|
Visual Studio 2008:
|
|
|
|
|
|
|
|
start .build/projects/vs2008/bgfx.sln
|
|
|
|
|
|
|
|
Linux 64-bit:
|
|
|
|
|
|
|
|
make -R linux-release64
|
|
|
|
|
|
|
|
Other platforms:
|
|
|
|
|
|
|
|
make -R <configuration>
|
|
|
|
|
|
|
|
Configuration is <platform>-<debug/release><32/64>. For example:
|
|
|
|
|
|
|
|
linux-release32, nacl-debug64, android-release32, etc.
|
|
|
|
|
2012-11-10 22:59:23 -05:00
|
|
|
Examples
|
|
|
|
--------
|
|
|
|
|
|
|
|
### 00-helloworld
|
|
|
|
Initialization and debug text.
|
|
|
|
|
|
|
|
### 01-cubes
|
|
|
|
Rendering simple static mesh.
|
|
|
|
|
|
|
|
### 02-metaballs
|
|
|
|
Rendering with transient buffers.
|
|
|
|
|
|
|
|
### 03-raymarch
|
|
|
|
Updating shader uniforms.
|
|
|
|
|
|
|
|
### 04-mesh
|
|
|
|
Loading OpenCTM meshes.
|
|
|
|
|
|
|
|
### 05-instancing
|
|
|
|
Geometry instancing.
|
|
|
|
|
|
|
|
### 06-bump
|
|
|
|
Loading textures.
|
|
|
|
|
2012-06-23 14:44:22 -04:00
|
|
|
Notice
|
|
|
|
------
|
|
|
|
|
|
|
|
This is alpha software, and it lacks documentation and examples. If you're
|
|
|
|
interested to use it in your project, please let me know.
|
|
|
|
|
2012-04-03 23:30:07 -04:00
|
|
|
Contact
|
|
|
|
-------
|
|
|
|
|
2012-06-02 13:59:47 -04:00
|
|
|
[@bkaradzic](https://twitter.com/bkaradzic)
|
|
|
|
http://www.stuckingeometry.com
|
2012-04-03 23:30:07 -04:00
|
|
|
|
2012-06-02 13:59:47 -04:00
|
|
|
Project page
|
|
|
|
https://github.com/bkaradzic/bgfx
|
2012-04-03 23:30:07 -04:00
|
|
|
|
|
|
|
License
|
|
|
|
-------
|
|
|
|
|
|
|
|
Copyright 2010-2012 Branimir Karadzic. All rights reserved.
|
|
|
|
|
2012-11-11 21:19:42 -05:00
|
|
|
Redistribution and use in source and binary forms, with or without
|
|
|
|
modification, are permitted provided that the following conditions are met:
|
2012-04-03 23:30:07 -04:00
|
|
|
|
2012-11-11 21:19:42 -05:00
|
|
|
1. Redistributions of source code must retain the above copyright notice,
|
|
|
|
this list of conditions and the following disclaimer.
|
2012-04-03 23:30:07 -04:00
|
|
|
|
|
|
|
2. Redistributions in binary form must reproduce the above copyright notice,
|
|
|
|
this list of conditions and the following disclaimer in the documentation
|
|
|
|
and/or other materials provided with the distribution.
|
|
|
|
|
|
|
|
THIS SOFTWARE IS PROVIDED BY COPYRIGHT HOLDER ``AS IS'' AND ANY EXPRESS OR
|
|
|
|
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
2012-11-11 21:19:42 -05:00
|
|
|
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
|
|
|
EVENT SHALL COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
|
|
|
|
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
|
|
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
|
|
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
|
|
|
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
|
|
|
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
|
|
|
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|