LukasBanana/LLGL

Low Level Graphics Library (LLGL) is a thin abstraction layer for the modern graphics APIs OpenGL, Direct3D, Vulkan, and Metal

C++

2,636

3,841 commits

updated Oct 12, 2026

See the code

README

Low Level Graphics Library (LLGL)

License Discord Doxygen Docs

Abstract

LLGL aims to be a thin abstraction layer for a wide variety of modern and legacy rendering APIs as well as a multitude of platforms targeting both desktop and mobile. LLGL provides close coupling with the underlying APIs for a rich feature set while also simplifying architectural hurdles. The library is written mostly in C++11 with the addition of a C99, C# 6.0, and Go wrapper.

Documentation

Platform Support

PlatformCID3D12D3D11VulkanOpenGLMetal
Windows

MSVC16+ CI

MSVC14 CI

✔️✔️✔️✔️N/A
UWPUWP CI✔️✔️N/AN/AN/A
GNU/LinuxGNU/Linux CIN/AN/A✔️✔️N/A
macOSmacOS CIN/AN/A✔️✔️✔️
iOSiOS CIN/AN/A✔️✔️✔️
AndroidAndroid CIN/AN/A✔️✔️N/A
WasmWebAssembly CIN/AN/AN/A✔️N/A
CMake/UnityUnity Build CI

Build Notes

Build scripts are provided for CMake. See LLGL Build System for more details.

Windows

Visual Studio 2015 or later is required to build LLGL on Windows. The Windows SDK is also required to build D3D11 and D3D12 backends.

macOS, iOS

Xcode 9 or later is required to build LLGL on macOS and iOS. For older Macs, there is a legacy mode to build LLGL for Mac OS X 10.6 using MacPorts of Clang.

GNU/Linux

LLGL on GNU/Linux requires the development libraries for X11 and its Xrandr extension (see docs for details).

Android

Android NDK with at least API level 21 is required. The build script supports generating project files for Android Studio.

Installing (vcpkg)

Alternatively, you can build and install LLGL using vcpkg dependency manager:

    git clone https://github.com/Microsoft/vcpkg.git
    cd vcpkg
    ./bootstrap-vcpkg.sh
    ./vcpkg integrate install
    ./vcpkg install llgl

The LLGL port in vcpkg is kept up to date by Microsoft team members and community contributors. If the version is out of date, please create an issue or pull request on the vcpkg repository.

Showcase

Post processing example Shadow mapping example

PBR example Cloth physics example

HelloGame example (Android)

d3d11
d3d12
directx
metal
opengl
renderer
vulkan

LukasBanana/LLGL

Low Level Graphics Library (LLGL) is a thin abstraction layer for the modern graphics APIs OpenGL, Direct3D, Vulkan, and Metal

C++

2,636

3,841 commits

updated Oct 12, 2026

See the code

README

Low Level Graphics Library (LLGL)

License Discord Doxygen Docs

Abstract

LLGL aims to be a thin abstraction layer for a wide variety of modern and legacy rendering APIs as well as a multitude of platforms targeting both desktop and mobile. LLGL provides close coupling with the underlying APIs for a rich feature set while also simplifying architectural hurdles. The library is written mostly in C++11 with the addition of a C99, C# 6.0, and Go wrapper.

Documentation

Platform Support

PlatformCID3D12D3D11VulkanOpenGLMetal
Windows

MSVC16+ CI

MSVC14 CI

✔️✔️✔️✔️N/A
UWPUWP CI✔️✔️N/AN/AN/A
GNU/LinuxGNU/Linux CIN/AN/A✔️✔️N/A
macOSmacOS CIN/AN/A✔️✔️✔️
iOSiOS CIN/AN/A✔️✔️✔️
AndroidAndroid CIN/AN/A✔️✔️N/A
WasmWebAssembly CIN/AN/AN/A✔️N/A
CMake/UnityUnity Build CI

Build Notes

Build scripts are provided for CMake. See LLGL Build System for more details.

Windows

Visual Studio 2015 or later is required to build LLGL on Windows. The Windows SDK is also required to build D3D11 and D3D12 backends.

macOS, iOS

Xcode 9 or later is required to build LLGL on macOS and iOS. For older Macs, there is a legacy mode to build LLGL for Mac OS X 10.6 using MacPorts of Clang.

GNU/Linux

LLGL on GNU/Linux requires the development libraries for X11 and its Xrandr extension (see docs for details).

Android

Android NDK with at least API level 21 is required. The build script supports generating project files for Android Studio.

Installing (vcpkg)

Alternatively, you can build and install LLGL using vcpkg dependency manager:

    git clone https://github.com/Microsoft/vcpkg.git
    cd vcpkg
    ./bootstrap-vcpkg.sh
    ./vcpkg integrate install
    ./vcpkg install llgl

The LLGL port in vcpkg is kept up to date by Microsoft team members and community contributors. If the version is out of date, please create an issue or pull request on the vcpkg repository.

Showcase

Post processing example Shadow mapping example

PBR example Cloth physics example

HelloGame example (Android)

d3d11
d3d12
directx
metal
opengl
renderer
vulkan

Significant stargazers

(top 24 of 27)

Rob Loach

570 followers · starred Feb 2023

Dmitry Marakasov

326 followers · starred Apr 2023

Rokas Kupstys

371 followers · starred Feb 2022

Mikkel Krautz

119 followers · starred Jan 2019