Skip to content

axjxwright/freetype-gl

 
 

Repository files navigation

Freetype GL - A C OpenGL Freetype engine

Build Status

This code intends to show how to display fonts efficiently using regular C, Freetype and OpenGL. The idea is to use a single texture and a single vertex buffer. The code is fairly simple and organized as follow:

Screenshot

Mandatory

  • 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: http://clb.demon.fi/files/RectangleBinPack.pdf

  • 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: http://www.cppreference.com/wiki/container/vector/start

Optional

  • 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 http://www.pyglet.org)

  • edtaa3func: Distance field computation by Stefan Gustavson (more information at http://contourtextures.wikidot.com/)

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

Contributors:

  • Ryan.H.Kawicki (Initial CMake project)
  • Julian Mayer (Several bugfixes and code for demo-opengl-4.cc)
  • 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 + README.md)
  • 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)

About

OpenGL text using one vertex buffer, one texture and FreeType

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 85.4%
  • C++ 7.4%
  • HTML 5.4%
  • GLSL 1.1%
  • CMake 0.5%
  • CSS 0.1%
  • Makefile 0.1%