Skip to content
master
Switch branches/tags
Code

Files

Permalink
Failed to load latest commit information.

liblava   Version

A modern and easy-to-use library for the Vulkan® API

lava is a lean framework that provides essentials for low-level graphics
Specially well suited for prototyping, tooling and education


Version   License   CodeFactor   Discord   Donate   Twitter URL

  ➜   C++20   /   Modular   /   Linux   /   Windows


Requirements   Download   Build   Template


Features

  • written in modern C++ with latest Vulkan support
  • run loop abstraction for window and input handling
  • plain renderer and command buffer model
  • texture and mesh loading from virtual file system
  • camera / logger / imgui and much more

Docs

Tutorial   Guide   Reference   Tests   Third-Party   Install


Modules

core util file   base resource asset   frame block   app demo


Demos

lava light

deferred shading / offscreen rendering

light


lava spawn

uniform buffer camera

spawn


lava lamp

push constants to shader

lamp


lava shapes

generating primitives

shapes


lava generic triangle

float, double, and int meshes

generic triangle


lava triangle

classic colored mesh

triangle


Projects

lava raytracing cubes

raytraced reflecting cubes   ➜   pezcode/lava-rt

cubes


Requirements

  • C++20 compatible compiler
  • CMake 3.20+
  • Vulkan SDK

Build

CMake (Linux, Windows)

git clone https://github.com/liblava/liblava.git
cd liblava

git submodule update --init --recursive

mkdir build
cd build

cmake ..
make

Template

You can start coding with the template project

  ➜   Just put your code in the src folder. Everything you need is in main.cpp

If you like you can rename it by setting the LIBLAVA_TEMPLATE_NAME variable in CMake:

cmake -DLIBLAVA_TEMPLATE_NAME="My-Project" ..

Collaborate

Use the issue tracker to report any bug or compatibility issue

❤️ Thanks to all contributors making liblava flow...


Support

If you want to contribute, we suggest the following:

  1. Fork the official repository
  2. Apply your changes to your fork
  3. Submit a pull request describing the changes you have made

License

liblava is licensed under MIT License which allows you to use the software
for any purpose you might like, including commercial and for-profit use!


However, this library includes several Third-Party libraries, which are licensed under their own respective Open Source licenses   ➜   They all allow static linking with closed source software

All copies of liblava must include a copy of the MIT License terms and the copyright notice

Vulkan and the Vulkan logo are trademarks of the Khronos Group Inc.
Copyright (c) 2018-present, Lava Block OÜ and contributors