bwoods / Vulkan

Text rendering in Vulkan by estimating signed distance

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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


Languages

Language:C++ 75.6%Language:C 16.9%Language:GLSL 5.3%Language:CMake 2.1%