Intermediate Graphics Library (IGL) is a cross-platform library that commands the GPU. It encapsulates
common GPU functionality with a low-level cross-platform interface. IGL is designed to support multiple
backends implemented on top of various graphics APIs (e.g. OpenGL, Metal and Vulkan) with a common interface.
There are a lot of good options for abstracting GPU API’s; each making different trade-offs. We designed IGL around the following priorities:
Low-level, forward-looking API. IGL embraces modern abstractions (command buffers, state containers, bindless, etc) and is designed to give more control than OpenGL’s state machine API. As a result, IGL can have leaner backends for modern API’s (e.g. Metal, Vulkan).
Minimal overhead for C++. IGL supports new or existing native rendering code without overhead of language interop or the need for other language runtimes.
Reach + scale in production. IGL has been globally battle-tested for broad device reliability (especially the long-tail of Android devices as well as Quest 2/3/Pro compatibility for OpenGL/Vulkan) and performance-tuned on our apps.
cd build
emcmake cmake .. -G Ninja
cmake --build .
Screenshots
License
IGL is released under the MIT license, see LICENSE.md for the full text as well as third-party library
acknowledgements. SparkSL Compiler is released under the SparkSL Compiler License, see LICENSE for full text.
Intermediate Graphics Library (IGL) is a cross-platform library that commands the GPU. It encapsulates common GPU functionality with a low-level cross-platform interface. IGL is designed to support multiple backends implemented on top of various graphics APIs (e.g. OpenGL, Metal and Vulkan) with a common interface.
There are a lot of good options for abstracting GPU API’s; each making different trade-offs. We designed IGL around the following priorities:
Supported rendering backends
Supported platforms
API Support
Build
Before building, run the deployment scripts:
These scripts download external third-party dependencies. Please check Dependencies for the full list.
The Gradle project is located within the build/android folder.
Please install Emscripten and Ninja.
Screenshots
License
IGL is released under the MIT license, see LICENSE.md for the full text as well as third-party library acknowledgements. SparkSL Compiler is released under the SparkSL Compiler License, see LICENSE for full text.