18 Commits

Author SHA1 Message Date
Mitchell Hashimoto
bdcc21942d config: font-synthetic-style to enable/disable synthetic styles
This adds a new configuration "font-synthetic-style" to enable or
disable synthetic styles. This is different from "font-style-*" which
specifies a named style or disables a style completely.

Instead, "font-synthetic-style" will disable only the creation of
synthetic styles in the case a font does not support a given style.
This is useful for users who want to obviously know when a font doesn't
support a given style or a user who wants to explicitly only use the
styles that were designed by the font designer.

The default value is to enable all synthetic styles.
2024-08-26 20:52:34 -07:00
Mitchell Hashimoto
963c843d1a font: if variation is set for a style and style isn't found, retry reg 2024-08-23 19:59:36 -07:00
Mitchell Hashimoto
ad22e068a2 font: use proper variation axes for non-default 2024-08-23 19:48:26 -07:00
Mitchell Hashimoto
874caf29da font: completeStyles 2024-08-23 15:21:26 -07:00
Mitchell Hashimoto
1f3ccb2d66 font: Collection uses SegmentedList for styles for pointer stability 2024-08-23 14:50:04 -07:00
Qwerasd
d01db9f793 revert dpi type to u16 2024-05-09 00:03:40 -04:00
Qwerasd
d4a7549222 feat(font): Non-integer point sizes
Allows for high dpi displays to get odd numbered pixel sizes, for
example, 13.5pt @ 2px/pt for 27px font. This implementation performs
all the sizing calculations with f32, rounding to the nearest pixel
size when it comes to rendering. In the future this can be enhanced
by adding fractional scaling to support fractional pixel sizes.
2024-05-09 00:03:40 -04:00
Mitchell Hashimoto
435bd32cfd font: SharedGridSet works without font discovery 2024-05-08 18:24:55 -07:00
Jack N
346eba3152 sprites: dont thicken via font-thicken, + add cursor thickness adjustment 2024-04-22 20:35:23 -07:00
Mitchell Hashimoto
13d9c0159d font: SharedGridSet.Key needs to clone the DerivedConfig
Key contains pointers into DerivedConfig. Each surface has its own
DerivedConfig. This would cause memory corruption if the surface that
opened the initial font grid deallocates. Instead, let's make sure Key
owns its own DerivedConfig.
2024-04-11 13:04:23 -04:00
Mitchell Hashimoto
f67c2b70a7 font: SharedGridSet must hash diff for font size change
Fixes #1670

This fixes two issues:

  - If no font families are set, font points would not change the hash.
  - DPI changes would not change the hash.

When the hash doesn't change when it should, we reuse a font stack due
to changes in #1662. This would cause some font issues. :)
2024-04-09 08:45:01 -04:00
Qwerasd
155a6d1114 font: fix discovery of styles
These are meant to be absolute indexes, make it so.
2024-04-08 20:44:17 -04:00
Mitchell Hashimoto
2f61f7d6a3 font: fix hashing of descriptor strings 2024-04-06 19:49:14 -07:00
Mitchell Hashimoto
ebd31ad50f font: SharedGridSet DerivedConfig does not take font size 2024-04-06 10:45:44 -07:00
Mitchell Hashimoto
b9efd83798 font: SharedGridSet uses DerivedConfig 2024-04-06 10:37:26 -07:00
Mitchell Hashimoto
00f677fd51 font: SharedGridSet locks and is thread-safe 2024-04-06 10:08:52 -07:00
Mitchell Hashimoto
4a29da3525 font: SharedGridSet clarify memory ownership 2024-04-05 15:15:30 -07:00
Mitchell Hashimoto
719c5d7c25 font: SharedGridSet starts 2024-04-05 15:03:22 -07:00