# hpgs_font_st Struct Reference

A truetype font. More...

`#include <hpgsfont.h>`

## Data Fields
hpgs_istream * | is
hpgs_font_header | header
hpgs_font_head_data | head_data
hpgs_font_hhea_data | hhea_data
hpgs_font_maxp_data | maxp_data
hpgs_font_longHorMetrics * | hmtx_data
uint32_t * | loca_data
size_t | loca_data_sz
hpgs_font_cmap_data | cmap_data
hpgs_font_post_data | post_data
hpgs_font_kern_pair * | kern_data
size_t | kern_data_sz
int * | glyph_cache_positions
size_t | n_cached_glyphs
hpgs_font_glyph_data * | glyph_cache
hpgs_mutex_t | mutex
size_t | nref

## Detailed Description

A truetype font.

This structure holds all details for operating on a truetype font file. The font file is kept open by the font object during it's lifetime, since we operate on the font file like on a database.

## Field Documentation

hpgs_istream* hpgs_font_st::is

The input stream to operate on.

Referenced by hpgs_destroy_font().

hpgs_font_head_data hpgs_font_st::head_data

The head table.

Referenced by hpgs_font_decompose_utf8(), hpgs_font_get_ascent(), hpgs_font_get_descent(), hpgs_font_get_glyph_metrics(), hpgs_font_get_line_gap(), and hpgs_font_get_utf8_metrics().

hpgs_font_hhea_data hpgs_font_st::hhea_data

The hhea table.

Referenced by hpgs_font_get_ascent(), hpgs_font_get_descent(), and hpgs_font_get_line_gap().

hpgs_font_maxp_data hpgs_font_st::maxp_data

The maxp table.

Referenced by hpgs_font_get_glyph_count(), and hpgs_font_get_glyph_metrics().

hpgs_font_longHorMetrics* hpgs_font_st::hmtx_data

The hmtx table. This array has a dimension of maxp_data.numGlyphs.

Referenced by hpgs_destroy_font(), hpgs_font_decompose_utf8(), hpgs_font_get_glyph_metrics(), and hpgs_font_get_utf8_metrics().

uint32_t* hpgs_font_st::loca_data

The loca table.

Referenced by hpgs_destroy_font().

size_t hpgs_font_st::loca_data_sz

The size of the loca table.

hpgs_font_cmap_data hpgs_font_st::cmap_data

The cmap table.

Referenced by hpgs_destroy_font().

hpgs_font_post_data hpgs_font_st::post_data

The post table.

Referenced by hpgs_destroy_font(), and hpgs_font_get_glyph_name().

size_t hpgs_font_st::kern_data_sz

The size of the kern table.

int* hpgs_font_st::glyph_cache_positions

The position of an individual glyph in `glyph_cache` or -1, if the glyph has not been cached yet. This array has a dimension of maxp_data.numGlyphs

Referenced by hpgs_destroy_font().

size_t hpgs_font_st::n_cached_glyphs

The number of actually cached glyphs.

Referenced by hpgs_destroy_font().

hpgs_font_glyph_data* hpgs_font_st::glyph_cache

The cached glyphs. This array has a dimension of maxp_data.numGlyphs.

Referenced by hpgs_destroy_font().

hpgs_mutex_t hpgs_font_st::mutex

The mutex to protec glyph access and reference counting.

Referenced by hpgs_destroy_font(), and hpgs_find_font().

size_t hpgs_font_st::nref

The reference count.

Referenced by hpgs_destroy_font(), and hpgs_find_font().

The documentation for this struct was generated from the following file:

- hpgsfont.h