FTVECTOR(outline) // border width, 16.16
GENERIC(unsigned, flags) // glyph decoration flags
GENERIC(unsigned, border_style)
+ GENERIC(int, hspacing) // 16.16
END(GlyphHashKey)
START(glyph_metrics, glyph_metrics_hash_key)
GENERIC(int, pbo)
FTVECTOR(outline)
GENERIC(unsigned, border_style)
+ GENERIC(int, hspacing)
GENERIC(int, scale)
GENERIC(unsigned, hash)
STRING(text)
key->outline.x = double_to_d16(info->border_x);
key->outline.y = double_to_d16(info->border_y);
key->border_style = info->border_style;
+ // hpacing only matters for opaque box borders (see draw_opaque_box),
+ // so for normal borders, maximize cache utility by ignoring it
+ key->hspacing =
+ info->border_style == 3 ? double_to_d16(info->hspacing) : 0;
key->hash = info->drawing->hash;
key->text = info->drawing->text;
key->pbo = info->drawing->pbo;
key->outline.y = double_to_d16(info->border_y);
key->flags = info->flags;
key->border_style = info->border_style;
+ key->hspacing =
+ info->border_style == 3 ? double_to_d16(info->hspacing) : 0;
}
}