---
name: "Font::TTF::GrFeat"
section: "3pm"
platform: "linux"
package: "perl-font-ttf"
version: "1.06-6"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/Font::TTF::GrFeat"
---

# Font::TTF::GrFeat(3pm)

Graphite Font Features

## NAME

Font::TTF::GrFeat - Graphite Font Features

## DESCRIPTION

## INSTANCE VARIABLES

- version

  - features

  An array of hashes of the following form

  - feature

    feature id number

  - name

    name index in name table

  - exclusive

    exclusive flag

  - default

    the default setting number

  - settings

    hash of setting number against name string index

## METHODS

### $t-\>read

Reads the features from the TTF file into memory

### $t-\>out($fh)

Writes the features to a TTF file

### $t-\>minsize()

Returns the minimum size this table can be. If it is smaller than this, then the table must be bad and should be deleted or whatever.

### $t-\>print($fh)

Prints a human-readable representation of the table

### $t-\>tag\_to\_num ($feat\_str)

Convert an alphanumeric feature id tag (string) to a number (32-bit). Tags are normally 4 chars. Graphite ignores space padding if it is present, so we do the same here.

### $t-\>num\_to\_tag ($feat\_num)

Convert a feature id number (32-bit) back to a tag (string). Trailing space or null padding is removed. Feature id numbers that do not represent alphanumeric tags  are returned unchanged.

## BUGS

The version 1 Feat table ends with a feature (id 1) named NoName with zero settings but with an offset to the last entry in the setting array. This last setting has id 0 and an invalid name id. This last feature is changed to have one setting.

## AUTHOR

Alan Ward (derived from Jonathan Kew's Feat.pm).

## LICENSING

Copyright (c) 1998-2016, SIL International (http://www.sil.org)

This module is released under the terms of the Artistic License 2.0.  For details, see the full text of the license in the file LICENSE.
