OpenGL text using one vertex buffer, one texture and FreeType

Freetype GL - A C OpenGL Freetype engine

Build Status

A small library for displaying Unicode in OpenGL using a single texture and a single vertex buffer.


Installation instructions.

Code organization

Mandatory files

  • texture-font: The texture-font structure is in charge of creating bitmap glyphs and to upload them to the texture atlas.

  • texture-atlas: This structure is responsible for the packing of small regions into a bigger texture. It is based on the skyline bottom left algorithm which appear to be well suited for storing glyphs. More information at:

  • vector: This structure loosely mimics the std::vector class from c++. It is used by texture-atlas (for storing nodes), texture-font (for storing glyphs) and font-manager (for storing fonts). More information at:

Optional files

  • markup: Simple structure that describes text properties (font family, font size, colors, underline, etc.)

  • font-manager: Structure in charge of caching fonts.

  • vertex-buffer: Generic vertex buffer structure inspired by pyglet (python). (more information at

  • edtaa3func: Distance field computation by Stefan Gustavson (more information at

  • makefont: Allow to generate header file with font information (texture + glyphs) such that it can be used without freetype.


  • Ryan.H.Kawicki (Initial CMake project)
  • Julian Mayer (Several bugfixes and code for
  • Sylvain Duclos (Android port)
  • Wang Yongcong (Improvements on the windows build and code review)
  • Jonas Wielicki (Bug report & fix on the CMakefile)
  • whatmannerofburgeristhis (Bug report in makefont)
  • Andrei Petrovici (Fine analysis of the whole code and report of potential problems)
  • Cristi Caloghera (Report on bad vertex buffer usage)
  • Andrei Petrovici (Code review)
  • Kim Jacobsen (Bug report & fix)
  • bsoddd (Bug report & fix)
  • Greg Douglas (Bug report & fix)
  • Jim Teeuwen (Bug report & fix)
  • quarnster (Bug report & fix)
  • Per Inge Mathisen (Bug report & fix)
  • Wojciech Mamrak (Code review, bug report & fix)
  • Wael Eloraiby (Put code to the C89 norm and fix CMakefile)
  • Christian Forfang (Code review, fix & patch for 3.2 core profile)
  • Lukas Murmann (Code review & fix for 3.2 core profile)
  • Jérémie Roy (Code review, fix and new ideas)
  • dsewtz (Bug report & fix)
  • jcgamestoy (Bug report & fix)
  • Behdad Esfahbod (Bug fix on harfbuzz demo)
  • Marcel Metz (Bug report & fix, CMmake no demo option, makefont parameters)
  • PJ O’Halloran (svn to git migration)
  • William Light (Face creation from memory)
  • Jan Niklas Hasse (Bug report & fix +
  • Pierre-Emmanuel Lallemant (Bug report & fix + travis setup)
  • Robert Conde (Bug report & fix)
  • Mikołaj Siedlarek (Build system bug fix)
  • Preet Desai (Bug report & fix)
  • Andy Staton (CMake fix and added namespace safeguard (avoiding glm collisions))
  • Daniel Burke (Removed GLEW dependency and fix problems with font licences)
  • Bob Kocisko (Added horizontal text alignment and text bounds calculation)
  • Ciro Santilli (Improve markdown documentation)

Related Repositories



OpenGL text using one vertex buffer, one texture and FreeType ...



A C++ wrapper for Freetype-GL ...



Mirror from ...



A fork of the freetype-gl project from ...



Basic OpenGL primitive + text drawing using freetype-gl ...

Top Contributors

adrianbroher rougier wmamrak cforfang gustafsson pelallemant wrl burito andystanton kode80 cirosantilli jhasse msiedlarek preet Tustvold xraw bobkocisko kelden asarium