|
23461b75
|
2022-08-19T09:48:12
|
|
[hb-ft] Only apply FT_Face's transform if we created FT_Face
Fixes https://github.com/harfbuzz/harfbuzz/issues/3788
https://github.com/harfbuzz/harfbuzz/issues/3790
|
|
d7adc55e
|
2022-08-03T13:22:51
|
|
[ot-font] Allow 24bit glyphs in advance cache
|
|
ec90d1e1
|
2022-08-03T13:00:48
|
|
[cache] Add a non-threadsafe version
Use in hb-ft, since already mutex'ed.
|
|
e387b3ac
|
2022-08-02T09:46:23
|
|
[ft] Try harder
|
|
40a34689
|
2022-08-02T16:09:27
|
|
hb-ft: cast to float to help windows sqrtf
|
|
ba9b2053
|
2022-08-01T12:42:05
|
|
[ft] Try working around fonts with transform set
Fixes https://github.com/harfbuzz/harfbuzz/issues/3772
|
|
1ac21246
|
2022-07-25T08:40:02
|
|
[hb-ft] Fix bitmap font rendering with hb_ft_font_changed()
Fixes https://github.com/harfbuzz/harfbuzz/issues/3754
Fixes https://github.com/harfbuzz/harfbuzz/issues/3755
|
|
61d0c547
|
2022-07-23T13:25:54
|
|
[ft] Pass design, not normalized, coords to freetype
Needed for avar2 to work.
|
|
cb5ca6be
|
2022-07-22T05:48:27
|
|
[ft] Actually call check_changed() from _changed()
Ouch!
Fixes https://github.com/harfbuzz/harfbuzz/issues/3746
|
|
fd535a24
|
2022-07-22T05:48:12
|
|
[ft] Remove check_changed from get_glyph_shape()
Leftover.
|
|
4f22397f
|
2022-07-18T11:03:54
|
|
[ft] A couple of introspection fixes
|
|
6ed57de1
|
2022-07-15T15:09:28
|
|
[ft] Fix negative font sizes for bitmaps
|
|
307ee9ba
|
2022-07-15T14:48:29
|
|
[ft] Fix bitmap-only vertical metrics
|
|
87d338eb
|
2022-07-15T14:19:17
|
|
[ft] Fix test
|
|
e294200d
|
2022-07-15T21:36:50
|
|
[ft] Check for FT_Get_Transform at build time
|
|
901236f7
|
2022-07-15T12:55:31
|
|
[ft] Implement loading (color) bitmap fonts
Fixes https://github.com/harfbuzz/harfbuzz/issues/489
Something about the vertical metrics is still off, not matching
hb-ot. I cannot figure out what.
|
|
3ac11056
|
2022-07-15T12:48:11
|
|
[ft] Fix scale when font-sizes are negative
|
|
98e90cc6
|
2022-06-30T08:43:57
|
|
[docs] Reduce warnings
Use markdown syntax for inline code blocks instead of %true, %false, and
%NULL.
|
|
8537d681
|
2022-06-27T20:51:16
|
|
4.4.0
|
|
8c27c51c
|
2022-06-19T10:47:38
|
|
[arabic-pua] Rename symbols
|
|
76989629
|
2022-06-19T10:41:45
|
|
[arabic-fallback] Disable PUA shaping under HB_NO_OT_SHAPER_ARABIC_FALLBACK
|
|
55350377
|
2022-06-19T10:13:31
|
|
[cmap/ft] Only map 0xF000 range if font_page is NONE
|
|
189e8c32
|
2022-06-18T13:28:54
|
|
[ft] Remap legacy Arabic PUA codepoints
Similar to what ot font finctions does, to support Support legacy
pre-OpenType Windows 3.1-era fonts.
|
|
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
|