hb-ot-color

hb-ot-color — OpenType Color Fonts

Functions

Types and Values

Object Hierarchy

    GFlags
    ╰── hb_ot_color_palette_flags_t

Includes

#include <hb-ot.h>

Description

Functions for fetching color-font information from OpenType font faces.

Functions

HB_COLOR()

#define HB_COLOR(b,g,r,a) ((hb_color_t) HB_TAG ((b),(g),(r),(a)))

hb_color_get_alpha()

#define hb_color_get_alpha(color) ((color) & 0xFF)

Since: 2.1.0


hb_color_get_blue()

#define hb_color_get_blue(color) (((color) >> 24) & 0xFF)

Since: 2.1.0


hb_color_get_green()

#define hb_color_get_green(color) (((color) >> 16) & 0xFF)

Since: 2.1.0


hb_color_get_red()

#define hb_color_get_red(color)		(((color) >> 8) & 0xFF)

Since: 2.1.0


hb_ot_color_glyph_get_layers ()

unsigned int
hb_ot_color_glyph_get_layers (hb_face_t *face,
                              hb_codepoint_t glyph,
                              unsigned int start_offset,
                              unsigned int *count,
                              hb_ot_color_layer_t *layers);

Parameters

face

a font face.

 

glyph

a layered color glyph id.

 

start_offset

starting offset of layers.

 

count

gets number of layers available to be written on buffer and returns number of written layers.

[inout][optional]

layers

layers buffer to buffer.

[array length=count][out][optional]

Returns

Total number of layers a layered color glyph have.

Since: 2.1.0


hb_ot_color_glyph_reference_png ()

hb_blob_t *
hb_ot_color_glyph_reference_png (hb_font_t *font,
                                 hb_codepoint_t glyph);

Get PNG image for a glyph.

Parameters

font

a font object, not face. upem should be set on that font object if one wants to get optimal png blob, otherwise return the biggest one

 

glyph

a glyph index.

 

Returns

respective PNG blob of the glyph, if available.

[transfer full]

Since: 2.1.0


hb_ot_color_glyph_reference_svg ()

hb_blob_t *
hb_ot_color_glyph_reference_svg (hb_face_t *face,
                                 hb_codepoint_t glyph);

Get SVG document for a glyph. The blob may be either plain text or gzip-encoded.

Parameters

face

a font face.

 

glyph

a svg glyph index.

 

Returns

respective svg blob of the glyph, if available.

[transfer full]

Since: 2.1.0


hb_ot_color_has_layers ()

hb_bool_t
hb_ot_color_has_layers (hb_face_t *face);

Parameters

face

a font face.

 

Returns

whether COLR table is available.

Since: 2.1.0


hb_ot_color_has_palettes ()

hb_bool_t
hb_ot_color_has_palettes (hb_face_t *face);

Parameters

face

a font face.

 

Returns

whether CPAL table is available.

Since: 2.1.0


hb_ot_color_has_png ()

hb_bool_t
hb_ot_color_has_png (hb_face_t *face);

Check whether face has PNG glyph images (either CBDT or sbix tables).

Returns true if available, false otherwise.

Parameters

face

a font face.

 

Since: 2.1.0


hb_ot_color_has_svg ()

hb_bool_t
hb_ot_color_has_svg (hb_face_t *face);

Check whether face has SVG glyph images.

Returns true if available, false otherwise.

Parameters

face

a font face.

 

Since: 2.1.0


hb_ot_color_palette_color_get_name_id ()

hb_ot_name_id_t
hb_ot_color_palette_color_get_name_id (hb_face_t *face,
                                       unsigned int color_index);

Parameters

face

a font face.

 

color_index

palette entry index.

 

Returns

Name ID associated with a palette entry, e.g. eye color

Since: 2.1.0


hb_ot_color_palette_get_colors ()

unsigned int
hb_ot_color_palette_get_colors (hb_face_t *face,
                                unsigned int palette_index,
                                unsigned int start_offset,
                                unsigned int *color_count,
                                hb_color_t *colors);

Retrieves the colors in a color palette.

Parameters

face

a font face.

 

palette_index

the index of the color palette whose colors are being requested.

 

start_offset

the index of the first color being requested.

 

color_count

on input, how many colors can be maximally stored into the colors array; on output, how many colors were actually stored.

[inout][optional]

colors

an array of hb_color_t records. After calling this function, colors will be filled with the palette colors. If colors is NULL, the function will just return the number of total colors without storing any actual colors; this can be used for allocating a buffer of suitable size before calling hb_ot_color_palette_get_colors() a second time.

[array length=color_count][out][optional]

Returns

the total number of colors in the palette.

Since: 2.1.0


hb_ot_color_palette_get_count ()

unsigned int
hb_ot_color_palette_get_count (hb_face_t *face);

Parameters

face

a font face.

 

Returns

the number of color palettes in face , or zero if face has no colors.

Since: 2.1.0


hb_ot_color_palette_get_flags ()

hb_ot_color_palette_flags_t
hb_ot_color_palette_get_flags (hb_face_t *face,
                               unsigned int palette_index);

Parameters

face

a font face

 

palette_index

the index of the color palette whose flags are being requested

 

Returns

the flags for the requested color palette.

Since: 2.1.0


hb_ot_color_palette_get_name_id ()

hb_ot_name_id_t
hb_ot_color_palette_get_name_id (hb_face_t *face,
                                 unsigned int palette_index);

Retrieves the name id of a color palette. For example, a color font can have themed palettes like "Spring", "Summer", "Fall", and "Winter".

Parameters

face

a font face.

 

palette_index

the index of the color palette whose name is being requested.

 

Returns

an identifier within face 's name table. If the requested palette has no name the result is HB_OT_NAME_ID_INVALID.

Since: 2.1.0

Types and Values

hb_color_t

typedef uint32_t hb_color_t;

Data type for holding color values.

Since: 2.1.0


enum hb_ot_color_palette_flags_t

Members

HB_OT_COLOR_PALETTE_FLAG_DEFAULT

default indicating that there is nothing special to note about a color palette.

 

HB_OT_COLOR_PALETTE_FLAG_USABLE_WITH_LIGHT_BACKGROUND

flag indicating that the color palette is appropriate to use when displaying the font on a light background such as white.

 

HB_OT_COLOR_PALETTE_FLAG_USABLE_WITH_DARK_BACKGROUND

flag indicating that the color palette is appropriate to use when displaying the font on a dark background such as black.

 

Since: 2.1.0