|
d6dbc0d1
|
2022-06-05T00:58:53
|
|
[gi/ft] Silence warnings
gi doesn't understand that FT_Face is a pointer, and not bare struct.
So it skips these APIs anyway. Mark skip to silense the warning.
../src/hb-ft.cc:242: Warning: HarfBuzz: hb_ft_font_get_face: return value: Invalid non-constant return of bare structure or union; register as boxed type or (skip)
../src/hb-ft.cc:264: Warning: HarfBuzz: hb_ft_font_lock_face: return value: Invalid non-constant return of bare structure or union; register as boxed type or (skip)
|
|
fc4d42ff
|
2022-06-01T05:19:23
|
|
[ft] Add API to notify that hb_font_t changed
New API:
- hb_ft_hb_font_changed()
Mostly reverts 56e0ff9ea129aa91dfcc746cd61f8cbbc427dba7
Related https://github.com/harfbuzz/harfbuzz/issues/2270
Fixes https://github.com/harfbuzz/harfbuzz/issues/3619
|
|
80c49933
|
2022-05-23T19:02:27
|
|
[hb-ft] Adjust serial signature
|
|
56e0ff9e
|
2022-05-20T12:30:46
|
|
[ft] If hb_font changed, update FT_Face
Fixes https://github.com/harfbuzz/harfbuzz/issues/2270
Rather untested.
|
|
8629df18
|
2022-05-20T12:06:22
|
|
[ft] Discard advance cache if font changed
Uses newly added font serial API.
Part of https://github.com/harfbuzz/harfbuzz/issues/2270
But doesn't set new coords on the FT_Face. That's a lot more
work :(.
|
|
05e82aa1
|
2022-05-20T12:17:31
|
|
[ft] Add missing lock to kerning function
|
|
55804e8d
|
2022-05-20T11:40:44
|
|
[hb-ft] Minor rearrange of struct members
To make clear what members the lock protects.
|
|
6d0e67de
|
2022-03-21T21:07:11
|
|
[ot-font] Only use vmtx side-bearing if table exists
Part of fixing https://github.com/harfbuzz/harfbuzz/issues/537
|
|
59067db9
|
2022-02-07T17:55:01
|
|
[font/draw] Slant drawings
Need to update hb_font_set_synthetic_slant() docs now that we do this.
|
|
6d5b998f
|
2022-02-04T18:44:38
|
|
[ft/draw] Implement hb-draw for hb-ft
|
|
002a1f70
|
2021-12-08T10:45:30
|
|
[ft] Disable vertical funcs if HB_NO_VERTICAL
|
|
ed116320
|
2021-09-14T07:09:54
|
|
Call atexit() via hb_atexit()
Part of https://github.com/harfbuzz/harfbuzz/issues/3197
|
|
2337f0d0
|
2021-07-08T10:58:50
|
|
Internally use hb_malloc/.../hb_free instead of malloc/.../free
Redefining those stock names as macros was conflicting with gcc 10
headers.
Fixes https://github.com/harfbuzz/harfbuzz/issues/3044
|
|
12a283d5
|
2021-02-22T12:50:41
|
|
m[ft] No need to use atomic ops for cached_x_scale
We have added a mutex since, so no need for atomicity.
|
|
9936490c
|
2020-12-31T00:19:29
|
|
[docs] Invalid use of "optional" annotation
It is valid only for out and inout parameters.
Fixes https://github.com/harfbuzz/harfbuzz/issues/1787
|
|
a31a51cd
|
2020-12-30T23:48:25
|
|
[docs] Complete hb-ft docs a bit
|
|
c7b2e64c
|
2020-12-27T00:53:23
|
|
[docs] make it clear that FT_Face must have size
Fixes https://github.com/harfbuzz/harfbuzz/issues/2590
|
|
22468c8a
|
2020-12-24T22:38:06
|
|
[docs] Give destroy callbacks have (optional) annotation
|
|
26b9670d
|
2020-06-28T14:52:15
|
|
[ft] Better handle allocation failures
Fixes https://github.com/harfbuzz/harfbuzz/issues/2513
|
|
2267da4e
|
2020-06-28T11:18:16
|
|
[ft] Do not deference ft_font if it is nullptr (#2502)
|
|
dbf9896e
|
2020-06-28T10:57:34
|
|
[ft] Handle nullptr when destroying freetype font (#2494)
|
|
a11db0b9
|
2020-04-23T15:32:43
|
|
Merge branch 'master' into usermanual-integration
|
|
f9bc3733
|
2020-04-17T22:37:48
|
|
2.6.5
|
|
b57b9042
|
2020-04-15T18:46:31
|
|
Add detail to hb_ft_font_create inline comments
Providing lengthier explanation for how the destroy function works on the hb_font_t but that destroying the FT_Face (and not destroying it too early) remains the client's responsibility.
|
|
1bca2be2
|
2020-04-15T18:30:47
|
|
Rewrite hb_ft_font_set_funcs inline explanation
|
|
80c01d76
|
2020-04-15T18:08:55
|
|
Update hb-ft.cc
|
|
9b91669c
|
2020-04-13T16:40:15
|
|
Update hb-ft.cc
|
|
d5338ba1
|
2019-11-22T16:22:27
|
|
[ft] Add locking FT_Face API
Now that we mutex our internal FT_Face, share it with clients.
New API:
- hb_ft_font_lock_face()
- hb_ft_font_unlock_face()
|
|
e4a101ed
|
2019-11-19T20:04:00
|
|
[ft] Fix for HB_NO_VAR build
|
|
bb41b74f
|
2019-09-18T00:55:24
|
|
Don't rely on undefined left shift of negative value behavior
Fixes this -fno-sanitize-recover=undefined check,
hb-ft.cc:869:27: runtime error: left shift of negative value -16384
#0 0x7ff8f47da843 in hb_ft_font_set_funcs /home/ebrahim/Desktop/harfbuzz/src/hb-ft.cc:869:27
#1 0x55f20a66c7d6 in font_options_t::get_font() const /home/ebrahim/Desktop/harfbuzz/util/options.cc:731:3
#2 0x55f20a668c1f in shape_consumer_t<output_buffer_t>::init(hb_buffer_t*, font_options_t const*) /home/ebrahim/Desktop/harfbuzz/util/./shape-consumer.hh:47:42
#3 0x55f20a668441 in main_font_text_t<shape_consumer_t<output_buffer_t>, 2147483647, 0>::main(int, char**) /home/ebrahim/Desktop/harfbuzz/util/./main-font-text.hh:75:14
#4 0x55f20a667f91 in main /home/ebrahim/Desktop/harfbuzz/util/hb-shape.cc:180:21
#5 0x7ff8f3df7ee2 in __libc_start_main (/usr/lib/libc.so.6+0x26ee2)
#6 0x55f20a6427ad in _start (/home/ebrahim/Desktop/harfbuzz/util/.libs/lt-hb-shape+0xd7ad)
|
|
0954c8f7
|
2019-09-01T17:09:08
|
|
[ft] Prefer symbol cmap subtable if found (#1948)
Similar to commit d304d60e4d49df14ed85d6646680085f27bafbf2 for ot-font.
|
|
a0b4ac4d
|
2019-08-24T17:57:14
|
|
Turn 8 spaces to tab across the project
According to the current code style of the project
|
|
9fea6b4d
|
2019-07-05T18:46:41
|
|
[amalgam] Use it in cmake port and fix conflicts (#1812)
|
|
aa3450ca
|
2019-06-17T22:41:49
|
|
[config] Don't compile disabled features
This makes it possible to include all .cc files into build, even if not
building CoreText, Uniscribe, etc.
This was mostly to help custom builders. But also means that we can
include all files in our own build system. Not sure if we should.
Definitely simplifies things, but slightly only.
|
|
bfb5569d
|
2019-06-17T14:06:04
|
|
Disable non-OpenType kerning with hb-ft in HB_TINY
|
|
896416bd
|
2019-06-17T13:39:49
|
|
Partially revert "[ft/ot] Remove implementation of deprecated kerning funcs"
This reverts commit 47030b1855f04c0d75899ffb6f5021fea3c19b90.
Reverts only the hb-ft part, to reinstate non-OpenType kerning with
FreeType.
Fixes https://github.com/harfbuzz/harfbuzz/issues/1682
|
|
9126a5ff
|
2019-05-20T17:37:56
|
|
[Docs] Add gtk-doc comments to hb-ft.
|
|
41248cce
|
2019-05-07T20:54:31
|
|
Remove MIN/MAX in favor of hb_min/hb_max
|
|
54ece299
|
2019-04-16T16:45:53
|
|
Use type aliasing for meta-functions, ie. those returning a type
|
|
b986c6a3
|
2019-03-29T20:17:46
|
|
[C++11] Remove IntType::set() in favor of operator=
|
|
447323b8
|
2019-01-22T12:45:40
|
|
Better fix for -Wcast-align errors
|
|
81ec543d
|
2019-01-22T12:43:12
|
|
More -Wcast-error fixes
|
|
8d05bf7d
|
2019-01-22T12:34:05
|
|
Fix cast-align error
If compiler doesn't inline StructAtOffset, this was an error since we
only disable cast-align at call-site. So, move the cast out.
../src/hb-machinery.hh: In instantiation of 'const Type& StructAtOffset(const void*, unsigned int) [with Type = unsigned int]':
../src/hb-font.cc:146:85: required from here
../src/hb-machinery.hh:63:12: error: cast from 'const char*' to 'const unsigned int*' increases required alignment of target type [-Werror=cast-align]
{ return * reinterpret_cast<const Type*> ((const char *) P + offset); }
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/hb-machinery.hh: In instantiation of 'Type& StructAtOffset(void*, unsigned int) [with Type = unsigned int]':
../src/hb-font.cc:147:79: required from here
../src/hb-machinery.hh:66:12: error: cast from 'char*' to 'unsigned int*' increases required alignment of target type [-Werror=cast-align]
{ return * reinterpret_cast<Type*> ((char *) P + offset); }
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
b900f780
|
2019-01-18T10:08:23
|
|
[pragma] More cast-align whitelist
|
|
e4120085
|
2018-12-17T21:31:01
|
|
Remove redundant void from C++ sources (#1486)
|
|
b2ebaa9a
|
2018-12-16T22:38:10
|
|
Remove redundant 'inline' from methods (#1483)
|
|
f99abcc3
|
2018-11-24T00:22:21
|
|
Add template-function convenience macros
|
|
b89c7fd3
|
2018-11-21T12:32:48
|
|
Allow defining HB_USE_ATEXIT to 0
That's better use of that value than requiring extra macro HB_NO_ATEXIT
|
|
7ec694dd
|
2018-11-07T13:19:36
|
|
Use non-GRID-fitted values for metrics (#1363)
* Use non-GRID-fitted values for metrics
See freetype/src/base/ftobjs.c:ft_recompute_scaled_metrics() and
the usage of GRID_FIT_METRICS inside.
Fixes https://github.com/behdad/harfbuzz/issues/1262
* Update hb-ft.cc
|
|
5570c87f
|
2018-11-03T14:51:38
|
|
Port objects to use header.writable instead of immutable
Saves 4 or 8 bytes per object on 64bit archs.
|
|
04981ee0
|
2018-10-27T04:40:43
|
|
[docs] More
|
|
07386ea4
|
2018-10-22T21:18:27
|
|
Remove const and references when binding Null()
Fixes https://github.com/harfbuzz/harfbuzz/issues/1299
Removes anomaly I was seeing in cpal table trying to use implicit Null(NameID).
|
|
be2f148d
|
2018-10-09T16:24:50
|
|
[ft] Use mutex to lock access to FT_Face
Makes our FT-backed hb_font_t safe to use from multiple threads. Still,
the underlying FT_Face should NOT be used from other threads by client
or other libraries.
Maybe I add a lock()/unlock() public API ala PangoFT2 and cairo-ft.
Maybe not.
|
|
d18c3c58
|
2018-10-09T16:07:55
|
|
[ft] Remove (probably) stale comment
|
|
ec84460e
|
2018-10-09T15:07:04
|
|
[ot/ft] Implement get_nominal_glyphs() callback
Some more measurable speedup. The recent commits' speedups are as follows:
Testing with Roboto, ****when disabling kern and liga****:
Before:
FT --features=-kern,-liga
user↦ 0m0.521s
OT --features=-liga,-kern
user↦ 0m0.568s
After:
FT --features=-liga,-kern
user↦ 0m0.428s
OT --features=-liga,-kern
user↦ 0m0.470s
So, 17% speedup.
Note that FT callbacks are faster than OT these days since we added an advance
cache to FT. I don't think the difference is enough to justify adding a cache
to OT.
When not disabling kern, the thing is three times slower, so the speedups
are three times less impressive... Still, 5% not bad for a codebase that I
otherwise thought is optimized out.
Note that, because of this and other optimiztions in our main shaper,
disabling kern and liga, the OT shaper is now *faster* than the fallback
shaper. So, that's my recommendation to clients that need the absolute
fastest...
|
|
bee93e26
|
2018-10-09T08:01:49
|
|
Add const to get_*_advances API
Ouch!
|
|
47030b18
|
2018-10-09T00:30:45
|
|
[ft/ot] Remove implementation of deprecated kerning funcs
|
|
8a31e406
|
2018-09-30T05:27:39
|
|
[font] Make *_advance() fallback to *_advances
And remove redundant implementations.
|
|
7f30629c
|
2018-09-26T16:40:23
|
|
[ft] Make TSan happy
|
|
383060cc
|
2018-09-11T14:41:19
|
|
[ft] Invalidate advance cache if font size changed
|
|
54998bef
|
2018-09-11T14:35:26
|
|
[ft] Cache advances
I decided to always use the cache, instead of my previous sketch direction
that was to only allocate and use cache if fast advances are not available.
The cache is a mere 1kb, so just use it...
TODO: Invalidate cache on font size change.
Fixes https://github.com/harfbuzz/harfbuzz/issues/651
Fixes https://github.com/harfbuzz/harfbuzz/pull/1082
|
|
047a84c5
|
2018-09-11T14:05:16
|
|
[ft] Towards caching slow get_h_advance results
Related to https://github.com/harfbuzz/harfbuzz/pull/1082
|
|
237f2153
|
2018-09-11T13:05:47
|
|
[ft] Add advances() callback
|
|
0f520ada
|
2018-09-11T12:02:34
|
|
Revert "Remove unused hb_cache_t"
This reverts commit 473b17af4d421f4ce7ac18c769731bb2aa4088f8.
Updates to recent changes.
|
|
c77ae408
|
2018-08-25T22:36:36
|
|
Rename hb-*private.hh to hb-*.hh
Sorry for the noise, downstream custom builders. Please adjust.
|
|
7112c641
|
2018-08-14T13:50:24
|
|
Guard free_static function definitions with macro
Add HB_USE_ATEXIT macros around free_static function definitions to
avoid unused function compiler warnings/errors.
|
|
7bd508a0
|
2018-08-12T17:19:55
|
|
[lazy] Rename free()
|
|
69010909
|
2018-08-12T16:57:06
|
|
[lazy] Make hb_lazy_loader_t<> more usable
|
|
53442be1
|
2018-08-12T16:20:11
|
|
[lazy] Use for ft_library
|
|
7a8d4803
|
2018-08-12T16:00:13
|
|
[lazy] Add .free()
|
|
c7ca30a5
|
2018-08-12T13:46:53
|
|
[ot/ft] Port font_funcs statis to lazy-loader
|
|
1f738094
|
2018-08-09T00:22:37
|
|
[atomic] Add hb_atomic_ptr_t<> and port all uses
Found and fixed a couple bugs.
Found a couple multithreading issues. Marked them with "XXX-MT-bug".
|
|
42c183f8
|
2018-07-27T14:55:29
|
|
Minor
|
|
2e25d8f4
|
2018-07-27T13:58:27
|
|
Fix unlikely leaks
|
|
be458eb0
|
2018-07-10T14:41:04
|
|
Include more basic internal headers from hb-private.hh
|
|
b8e406f0
|
2018-06-10T17:22:38
|
|
More fixes for SunStudio 12.6 build
Followup to https://github.com/harfbuzz/harfbuzz/pull/1053
|
|
24b8b9b2
|
2018-04-23T19:03:57
|
|
Resolve clang's used-but-marked-unused warnings
|
|
f24b0b97
|
2018-04-12T13:40:45
|
|
Update the links and revive the dead ones
|
|
70d36543
|
2018-03-30T05:00:28
|
|
Make atexit callbacks threadsafe (#930)
|
|
90218fa9
|
2018-01-31T20:44:45
|
|
Fix typos.
|
|
0473d95e
|
2018-01-08T10:07:46
|
|
[ft] Use FT_Done_MM_Var() if available
|
|
cb43bdbc
|
2018-01-05T13:06:25
|
|
[ft] If there's no variations set, don't set them on hb-font
|
|
0fd89dc6
|
2017-12-04T18:58:41
|
|
[hb-ft] Fix build when Multiple Master font support is disabled in freetype
FT_Set_Var_Blend_Coordinates() is not available when "Multiple Master
font interface" is disabled in freetype's modules.cfg
|
|
93f7c165
|
2017-11-14T10:59:54
|
|
Revert "[glib/ucdn/icu/ft/ot] Make returned funcs inert"
This reverts commit 5daf3bd4494cce6b4fb074533be9e99c4d9e0edd.
If other atexit callbacks try to destruct the objects we destruct
in atexit callbacks, bad things will happen.
I'll come up with some other way to catch premature destruction
of HB-owned objects.
Fixes https://github.com/behdad/harfbuzz/issues/618
|
|
40ec3bbb
|
2017-11-03T16:57:30
|
|
Consolidate debug stuff into hb-debug.hh
Part of fixing https://github.com/behdad/harfbuzz/pull/605
|
|
5daf3bd4
|
2017-10-27T16:34:01
|
|
[glib/ucdn/icu/ft/ot] Make returned funcs inert
Such that client cannot accidentally destroy them, even though that
will be a bug in their code...
|
|
473b17af
|
2017-10-15T14:10:34
|
|
Remove unused hb_cache_t
|
|
dbdbfe3d
|
2017-10-15T12:11:08
|
|
Use nullptr instead of NULL
|
|
4e478131
|
2017-10-12T10:33:16
|
|
[ft] Add hb_ft_font_changed()
When the font size or variations settings on underlying FT_Face change,
one can call hb_ft_font_changed() and continue using hb_font created using
hb_ft_font_create().
Fixes https://github.com/behdad/harfbuzz/issues/559
New API:
hb_ft_font_changed()
|
|
e1b6d923
|
2017-10-11T15:51:31
|
|
Remove cast of functions to (hb_destroy_func_t)
Fixes https://github.com/behdad/harfbuzz/issues/474
|
|
ac8c4e56
|
2017-08-09T22:05:08
|
|
[ft] Fix theoretical leak
|
|
68af14d5
|
2017-08-09T17:09:21
|
|
Protect against div-by-zero in CBDT extent code
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1452#c5
CC https://github.com/behdad/harfbuzz/issues/139
|
|
7647a05a
|
2017-01-22T17:47:49
|
|
Minor
|
|
825e4040
|
2017-01-22T16:41:45
|
|
[hb-ft] Remove use of variable-length array
Hopefully also fixes build failure on msvc.
|
|
47ee34e8
|
2017-01-21T18:10:08
|
|
[var] Hook up variations to FreeType face
hb-view correctly renders variations with ft font-funcs now.
hb-ot-font needs HVAR implementation.
|
|
b8376b10
|
2017-01-20T18:19:28
|
|
Minor
|
|
72873cf5
|
2016-09-13T18:40:07
|
|
Call hb_font_set_var_coords_normalized() from FT_Face coords
|
|
42c81425
|
2016-09-13T23:49:46
|
|
[GX] Fix build with older FreeType
|
|
33317310
|
2016-08-08T17:24:04
|
|
Fix sign of shift operators
This one:
map->mask = (1 << (next_bit + bits_needed)) - (1 << next_bit);
before the fix, the shift was done as an int, causing overflow
if it ever got to 1 << 31. Sprinkle 'u's around.
Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=634805
|
|
34f9aa58
|
2016-07-20T02:35:54
|
|
Implement symbol cmap in ft and ot fonts
Fixes https://github.com/behdad/harfbuzz/issues/236
Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=627953
|