Skip to content

bwoods/Vulkan

 
 

Repository files navigation

Vulkan Rendering 🌋

A minimally configurable wrapper around the creation of Vulkan rendering pipelines.

API

Proposed: Work in Progress

Much of Vulkan’s infamous 800+ lines of code to render a triangle is hardware selection and configuration. The C++ API herein minimizes that boilerplate by allowing the programmer to just specify requirements.

The complete Vulkan API is available for rendering; it is not wrapped or simplified.

Simple Example
auto renderer = forge::renderer([ ] (auto& with) {
   // ...
});

// the rendering loop is then just:
renderer([&] (VkDevice device, VkCommandBuffer command_buffer) {
	
});

Additional Features

Text

Text renderering is based upon a demo by Dávid Kocsis

Text is rendered directly from font outlines.

  • “Lorem Ipsum” rendering
  • Dynamic text rendering
  • Fallback font handling

Bezier

As the text renderer is extracting Bezier curves from the fonts, directly rendering Bezier curves should be relatively easy to add.

  • bezier API
  • rectangle API
  • line API
  • squircle API

About

Text rendering in Vulkan by estimating signed distance

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 75.7%
  • C 16.9%
  • GLSL 5.3%
  • CMake 2.1%