Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

Intermediate Graphics Library (IGL) is a cross-platform library that commands the GPU. It provides a single low-level cross-platform interface on top of various graphics APIs (e.g. OpenGL, Metal and Vulkan).

License

NotificationsYou must be signed in to change notification settings

facebook/igl

Repository files navigation

IGL Logo

Build Status

Intermediate Graphics Library (IGL) is a cross-platform library that commands the GPU. It encapsulatescommon GPU functionality with a low-level cross-platform interface. IGL is designed to support multiplebackends 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:

  1. 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).
  2. Minimal overhead for C++. IGL supports new or existing native rendering code without overhead of language interop or the need for other language runtimes.
  3. 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.

Supported rendering backends

Supported platforms

  • Android
  • iOS
  • Linux
  • macOS
  • Windows
  • WebAssembly

API Support

WindowsLinuxmacOSiOSAndroid
Vulkan 1.1✔️✔️✔️ (MoltenVK)✖️✔️ (Quest 2/3/Pro)
OpenGL ES 2.0 - 3.0✔️ (Angle)✔️ (Angle)✖️✔️✔️
OpenGL ES 3.1 - 3.2✔️ (Angle)✔️ (Angle)✖️✖️✔️
OpenGL 3.1 - 4.6✔️✔️✔️✖️✖️
Metal 2✖️✖️✔️✔️✖️

Build

Before building, run the deployment scripts:

python3 deploy_content.pypython3 deploy_deps.py

These scripts download external third-party dependencies. Please checkDependencies for the full list.

  • Windows
cd buildcmake .. -G "Visual Studio 17 2022"
  • Linux
sudo apt-get install clang xorg-dev libxinerama-dev libxcursor-dev libgles2-mesa-dev libegl1-mesa-dev libglfw3-dev libglew-dev libstdc++-12-devcd buildcmake .. -G "Unix Makefiles"
  • macOS
cd buildcmake .. -G "Xcode" -DIGL_WITH_VULKAN=OFF
  • iOS
cd buildcmake .. -G Xcode -DCMAKE_TOOLCHAIN_FILE=../third-party/deps/src/ios-cmake/ios.toolchain.cmake -DDEPLOYMENT_TARGET=13.0 -DPLATFORM=OS64
  • Android

The Gradle project is located within thebuild/android folder.

  • WebAssembly

Please installEmscripten andNinja.

cd buildemcmake cmake .. -G Ninjacmake --build .

Screenshots

image

image

License

IGL is released under the MIT license, seeLICENSE.md for the full text as well as third-party libraryacknowledgements. SparkSL Compiler is released under the SparkSL Compiler License, seeLICENSE for full text.

About

Intermediate Graphics Library (IGL) is a cross-platform library that commands the GPU. It provides a single low-level cross-platform interface on top of various graphics APIs (e.g. OpenGL, Metal and Vulkan).

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published

[8]ページ先頭

©2009-2025 Movatter.jp