Home - inanevin/LinaVG GitHub Wiki

Welcome to the LinaVG wiki!

LinaVG

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 does not automatically do any rendering, you are expected to write your own backend support for rendering the buffers obtained from LinaVG. Example project provide an example of an OpenGL backend that you can use. If you are using Vulkan or DirectX, feel free to check the Core/Backend.hpp file to learn how to add your own backend.

Repository

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.

Terminology

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.

Support

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