An open API service indexing awesome lists of open source software.

https://github.com/prideout/lava

toy C++ Vulkan library
https://github.com/prideout/lava

graphics vulkan

Last synced: 23 days ago
JSON representation

toy C++ Vulkan library

Awesome Lists containing this project

README

          

[![Build Status](https://travis-ci.org/prideout/lava.svg?branch=master)](https://travis-ci.org/prideout/lava)

*Lava is just an experimental playground, I do not recommend using it in a production
setting.*

**Lava** is a toy C++ library composed of classes that make it easy to create and manage Vulkan
objects. Each Lava class is defined by a single header with no dependencies on anything other than
`vulkan.h` and the STL.

For more information, see the [documentation](https://prideout.net/lava/).

## Scope

Lava does not include a materials system, a scene graph, an asset loader, or any
platform-specific functionality like windowing and events.

Lava is implemented with a subset of C++14 that forbids RTTI, exceptions, and the use of
``. The public API uses a very narrow subset of C++ whereby classes contain nothing but
methods.

The core library has no dependencies on any third-party libraries other than the single-file
[vk_mem_alloc.h](src/vk_mem_alloc.h) library and [spdlog](https://github.com/gabime/spdlog), which
are included in the repo for convenience.

## Supported platforms

Lava supports macOS via MoltenVK, as well as Linux and Android. It should be easy to extend to other
platforms in the future.