Behdad Esfahbod
6b3fe8ac1b
[embolden] Semi-handle with negative scales
2023-02-02 15:51:22 -07:00
Behdad Esfahbod
e39104ba19
[font/util] Add emboldening API, --font-bold
...
Needs documentation.
2023-02-02 15:51:22 -07:00
Behdad Esfahbod
d195e077e9
[font] Remember named_instance index
...
Specially, in hb_font_set_variations() default to the named_instance
for unspecified axes.
Fixes https://github.com/harfbuzz/harfbuzz/issues/1883
2023-01-15 10:44:04 -07:00
Behdad Esfahbod
d2aa2397ba
Optimize non-slant extents code
2023-01-09 13:44:44 -07:00
Behdad Esfahbod
30adbc22d9
hb-font: Fix scale_glyph_extents() again
...
And better fix this time.
2023-01-09 11:54:44 -07:00
Behdad Esfahbod
6c1a4bed4a
Better rounding clip boxes
2023-01-09 11:37:39 -07:00
Matthias Clasen
9be01b6bff
[paint] Pass hb_paint_context_t along
...
Replace the font argument with a hb_paint_context_t
that carries the font, the palette index and the
foreground color.
The hb_font_paint_glyph() api now takes the palette
index and the foreground color as extra arguments.
Update all callers and regenerate test results.
2022-12-23 13:37:59 -07:00
Matthias Clasen
14b026ff86
[draw] Add hb_font_draw_glyph
...
hb_font_draw_glyph(), hb_font_draw_glyph_func_t and
hb_font_funcs_set_draw_glyph_func() are just alternative
names for hb_font_get_glyph_shape and friends, to better
align with hb_font_paint_glyph.
2022-12-23 13:37:59 -07:00
Matthias Clasen
0f287e75ec
[paint] Rename hb_font_get_glyph_paint_func_t
...
The 'get' was just there due to implementation
choices. Work around that and call the vfunc
what it should be: hb_font_paint_glyph_func_t.
2022-12-23 13:37:59 -07:00
Matthias Clasen
71efa0dcf1
wip: hb_font_paint_glyph
2022-12-23 13:37:59 -07:00
Behdad Esfahbod
897c102703
[font] Fix scale_glyph_extents
2022-12-22 08:15:01 -07:00
Behdad Esfahbod
9194e13e25
[font] Apply slant to glyph extents
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/3952
hb-ft not fixed since doesn't use this code.
2022-12-22 07:32:29 -07:00
Behdad Esfahbod
b0abbfd868
[font] Centralize glyph-extents scaling
...
Needs more testing...
Some rounding was removed, namely in cff1 and cff2.
2022-12-22 07:32:15 -07:00
Behdad Esfahbod
ac0efaf818
Use hb_memset instead of memset consistently
2022-11-22 12:50:36 -07:00
Behdad Esfahbod
c1c78ade71
[font] When font changes, drop font shaper data
...
https://github.com/harfbuzz/harfbuzz/issues/3683#issuecomment-1168016509
2022-06-28 13:19:30 -06:00
Behdad Esfahbod
d3308f4713
[font] Optimize font scaling further
2022-06-27 11:28:57 -06:00
Behdad Esfahbod
556e7078f0
[font] Optimize glyph scaling
2022-06-26 17:48:43 -06:00
Behdad Esfahbod
7635568f29
[font] Remove a TODO item that's not gonna happen
2022-06-10 07:29:15 -06:00
Behdad Esfahbod
88ccbd2c43
[font-funcs] Optimize user-data/destroy storage
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/2427
2022-06-01 16:38:12 +01:00
Behdad Esfahbod
cd05d187c8
[font] Fix undefined-behavior when scales are negative
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/3555
2022-06-01 07:27:53 -06:00
Behdad Esfahbod
a2015cd300
[font] Add a separate serial_coords
2022-05-26 05:02:50 -06:00
Behdad Esfahbod
48db1c9583
[font] Add serial API
...
New API:
+ hb_font_get_serial()
+ hb_font_changed()
Fixes https://github.com/harfbuzz/harfbuzz/issues/2426
Unused internally as of now.
2022-05-26 05:02:50 -06:00
Behdad Esfahbod
8b4f429000
[draw] Virtualize hb_font_draw_glyph() into hb_font_get_glyph_shape()
...
To be implemented in hb-ft.
2022-02-13 13:21:14 -06:00
Behdad Esfahbod
d6e49b8278
[font] Add em_fscalef_[xy] That take and return float
2022-02-13 13:21:14 -06:00
Behdad Esfahbod
6c0b65a6a8
[font] Add em_scaleff() that returns float
2022-02-13 13:21:14 -06:00
Behdad Esfahbod
ff697debd8
[GPOS] Apply font synthetic slant
...
Part of fixing https://github.com/harfbuzz/harfbuzz/issues/3196
2021-12-19 21:20:25 -08:00
Behdad Esfahbod
810f5d71c7
[font] Add public API for slant
...
Not hooked up internally to anything.
New API:
+ hb_font_set_synthetic_slant()
+ hb_font_get_synthetic_slant()
Part of fixing https://github.com/harfbuzz/harfbuzz/issues/3196
2021-12-19 21:20:25 -08:00
Behdad Esfahbod
bbaccf23d9
Better round positions during scaling
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/3274
2021-11-01 16:45:36 -06:00
Behdad Esfahbod
da500568de
[API] Add hb_buffer_[sg]et_not_found_glyph() and --not-found-glyph
...
Instead of using gid=0 when a character is not found in the font,
client can now set a custom value. This is useful for shaper-driven
font fallback and to differentiate that from .notdef glyph.
Fixes https://github.com/harfbuzz/harfbuzz/issues/1360
2021-10-26 08:02:29 -06:00
Ebrahim Byagowi
d0e2addd43
minor
2020-07-18 22:16:02 +04:30
Ebrahim Byagowi
2dda6dd744
minor, tweak spacing
...
turn 8 spaces to tab, add space before Null/Crap
2020-04-20 16:18:29 +04:30
Ebrahim Byagowi
ab2d3ec542
[var] Implement hb_font_get_var_coords_design
...
Hold design coords and simulate when normalized coords are set directly.
2020-02-08 11:04:34 +03:30
Ebrahim Byagowi
0558413f27
Minor, tweak spaces
2019-10-01 13:50:11 +03:30
Behdad Esfahbod
f18ea1dd3a
[font] Remove division when scaling
...
Yoohoo. This seems to be precise enough! Let's see if it sticks.
I'm asking Dominik to run this in Chrome test suite and report.
Fixes https://github.com/harfbuzz/harfbuzz/issues/1801
2019-07-05 13:56:45 -07:00
Behdad Esfahbod
b847769292
[font] Keep font-space to user-space multiplier
...
Part of https://github.com/harfbuzz/harfbuzz/issues/1801
2019-07-05 13:52:09 -07:00
Behdad Esfahbod
0d425e1eea
[ot-font] Optimize rounding
...
Part of https://github.com/harfbuzz/harfbuzz/issues/1801
The assumption that compiler optimizes "upem/2" to a shift only
works if upem is unsigned... Anyway, spoon-feed the compiler.
2019-07-05 13:42:02 -07:00
Behdad Esfahbod
0819f3ca86
Deprecate v_kerning callback again
...
Part of https://github.com/harfbuzz/harfbuzz/issues/1682
2019-06-17 14:02:47 -07:00
Behdad Esfahbod
fca2786041
[config] Make HB_DISABLE_DEPRECATED actually compile
...
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-05-11 00:37:01 -07:00
Behdad Esfahbod
dfc5780245
Fix more double-promotion errors
...
WHy do only some of the clang bots catch this I have no idea :(.
2019-05-07 23:26:09 -07:00
Ebrahim Byagowi
e412008599
Remove redundant void from C++ sources ( #1486 )
2018-12-17 13:01:01 -05:00
Ebrahim Byagowi
b2ebaa9afa
Remove redundant 'inline' from methods ( #1483 )
2018-12-16 14:08:10 -05:00
Behdad Esfahbod
ce5da0f36a
[shaper] Rewrite shaper data code to be more template-driven than macro-driven
2018-11-16 02:52:20 -05:00
Behdad Esfahbod
5570c87f21
Port objects to use header.writable instead of immutable
...
Saves 4 or 8 bytes per object on 64bit archs.
2018-11-03 14:59:40 -04:00
Behdad Esfahbod
35d410f2ba
Remove ASSERT_POD
...
Newer compilers / language allows structs with constructor in union.
So, this was not actually testing anything. Indeed, the recent
change in DISALLOW_COPY *is* making some of our types non-POD.
That broke some bots.
Just remove this since it wasn't doing much, and I'd rather have
DISALLOW_COPY.
2018-10-29 14:45:44 -07:00
Behdad Esfahbod
08b7172969
[font] Fix parallel funcs passing to eachover in infinite-loop
...
Fixes test just added.
2018-10-19 19:12:33 -07:00
Behdad Esfahbod
8008bca83b
Whitespace
2018-10-09 14:43:03 -04:00
Behdad Esfahbod
b314c4e9ab
[font] Add get_nominal_glyphs() callback (note the plural)
...
Unused as of now. To be wired up to normalizer, which would remove
overhead and allow hb-ot-font initialization to become a no-op, so
we can enable it by default.
2018-10-09 09:43:44 -04:00
Behdad Esfahbod
ca6a317012
Minor
2018-10-09 09:43:44 -04:00
Behdad Esfahbod
bee93e2697
Add const to get_*_advances API
...
Ouch!
2018-10-09 08:02:25 -04:00
Behdad Esfahbod
683c3a9533
[kern] Abstract away kerning machine
2018-10-08 23:09:48 -04:00