Skip to content
Ebrahim Byagowi edited this page Jun 5, 2018 · 78 revisions

Welcome to the harfbuzz wiki!

HarfBuzz is a text shaping library.

HarfBuzz

Community and Development

History

The current HarfBuzz tree, also known as harfbuzz-ng, is under active development and is what is used in latest versions of Firefox, GNOME, ChromeOS, Chrome, LibreOffice, XeTeX, Android, PlayStation 4, KDE and Java 9 among other places.

The old HarfBuzz tree, derived from FreeType, Pango, and Qt is not actively developed or maintained, and is buggy. All users are encouraged to switch over to the new HarfBuzz. There are no release tarballs of old HarfBuzz whatsoever.

State of Text Rendering

To get a better idea of where HarfBuzz stands in the text rendering stack read Behdad Esfahbod's State of Text Rendering.

User Examples

  • Akita Noek's example code which uses SDL, cairo, freetype, and harfbuzz to do ttf/otf text layout and rendering.

  • Alexander Sabourenkov's fork of Akita Noek's example. This version does not use Cairo, glib or ICU. It demonstrates anti-aliased font rasterization rendering directly into 32bpp memory without intermediate FT_Bitmaps.

  • Look in the HarfBuzz util directory for the source code of the hb-shape, and hb-view utilities.

  • harfbuzz-tutorial, along with the walkthough accompanying that.

  • harfbuzz-example, using Freetype, OpenGL and GLFW.

User Reference

Internals Guide

Internals Reference

Glossary

  • SFNT is a font file format used for PostScript, TrueType and OpenType fonts.
  • Uniscribe is the Microsoft Windows implementation of complex text layout.

Documentation To Do List

Clone this wiki locally