Skip to content
forked from liblava/liblava

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

License

Notifications You must be signed in to change notification settings

feiyunwill/liblava

 
 

Repository files navigation

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


  • 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
  • GUI + camera + logging + utils and much more

Docs

Tutorial   Guide   Reference   Tests   Third-Party   Install


core util file   base resource asset   frame block   app demo


Demos

deferred shading / offscreen rendering

light


uniform buffer camera

spawn


push constants to shader

lamp


generating primitives


float, double, and int meshes


classic colored mesh

triangle


Projects

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

About

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

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 94.5%
  • CMake 3.2%
  • GLSL 2.0%
  • Other 0.3%