Skip to content
Inan Evin edited this page Jun 11, 2022 · 13 revisions

Welcome to the LinaVG wiki!


LinaVG is a vector-graphics library which can be used both for retained and immediate-mode GUI purposes. It provides low-level functionality for vector shape & text rendering with anti-aliasing and rich styling options such as colors, texturing, gradients, outlines, drop-shadows and many more. It was initially made for Lina Engine, but now is available as a standalone library.

LinaVG currently supports OpenGL as a backend, however it's fairly easy to add new backends. So if you are using Vulkan or DirectX, feel free to check the Core/Backend.hpp file to learn how to add your own backend. Similarly, the example application runs on OpenGL backend using GLFW.


LinaVG repository consist of the library project itself along with an example C++ desktop application, using GLFW for window creation. You can download a statically build library & headers from the releases to link to your application, or download the source code right away from Github and build it along with your application.


LinaVG has variety of styling options and possible vector-graphics to draw. The terminology is put into a few categories for the sake of clarity throughout this document:

  • Shapes: Rectangles, Triangles, Circles/Semi-Circles/Arcs, NGons, User-defined Convex Shapes
  • Lines: Single line, multi-lines, bezier curves
  • Texts: Traditional (bitmap) and Signed-Distance-Field (SDF) texts.
  • Styling: Defines everything regarding colors, thickness, textures, uvoffsets, outlines, text options and alignment.


I am developing Lina Engine and LinaVG, along with other open-source game dev toolsets on my free time. You can support me by sponsoring this project. Or by buying me a coffee.

I am also open to consultation and other similar work. Contact me to have a chat!

Donate Lina Discord