src/hb-ft.cc


Log

Author Commit Date CI Message
Behdad Esfahbod 83408cf8 2013-11-06T14:46:04 Fix llvm warnings on Mac Patch from Scott Fleischman. Warnings were: harfbuzz/src/hb-font-private.hh:121:42: Implicit conversion loses integer precision: 'long long' to 'hb_position_t' (aka 'int') harfbuzz/src/hb-font-private.hh:126:42: Implicit conversion loses integer precision: 'long long' to 'hb_position_t' (aka 'int') harfbuzz/src/hb-font-private.hh:400:85: Implicit conversion loses integer precision: 'long long' to 'hb_position_t' (aka 'int') harfbuzz/src/hb-ot-layout-common-private.hh:1115:37: Implicit conversion loses integer precision: 'long long' to 'int' harfbuzz/src/hb-ft.cc:421:97: Implicit conversion loses integer precision: 'unsigned long long' to 'int' harfbuzz/src/hb-ft.cc:422:97: Implicit conversion loses integer precision: 'unsigned long long' to 'int'
Behdad Esfahbod 755b44cc 2013-10-18T11:17:42 [ft] Round metrics instead of truncate Lohit-Punjabi has a upem of 769! We were losing one unit in our code, and FreeType is losing another one... Test with U+0A06. Has an advance of 854 in the font. We were producing 852. Now we do 853, which is what FreeType is telling us.
Behdad Esfahbod ace5c7eb 2013-09-13T20:34:42 [introspection] hb-ft annotations
Behdad Esfahbod e509d35c 2013-07-11T14:56:45 [ft] hb_ft_get_glyph_from_name fails for the name of glyph id 0 Based on patch from Jonathan Kew, as reported on the mailing list.
Behdad Esfahbod 79d1007a 2013-06-13T19:01:07 If variation selector is not consumed by cmap, pass it on to GSUB This changes the semantics of get_glyph() callback and expect that callbacks return false if the requested variant is not available, and then we will call them back with variation_selector=0 and will retain the glyph for the selector in the glyph stream. Apparently most Mongolian fonts implement the Mongolian Variation Selectors using GSUB, not cmap. https://bugs.freedesktop.org/show_bug.cgi?id=65258 Note that this doesn't fix the Mongolian shaping yet, because the way that's implemented is that the, say, 'init' feature ligates the letter and the variation-selector. However, since currently the variation selector doesn't have the 'init' mask on, it will not be matched...
Behdad Esfahbod 190e19e6 2013-03-09T20:30:22 [ft] Remove TODO items that I'm not going to fix
Behdad Esfahbod 392ee974 2013-03-09T20:27:55 [ft] Remove TODO item re FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH That flag is redundant, deprecated, and ignored since April 2011. From FreeType git log: commit 8c82ec5b17d0cfc9b0876a2d848acc207a62a25a Author: Behdad Esfahbod <behdad@behdad.org> Date: Thu Apr 21 08:21:37 2011 +0200 Always ignore global advance. This makes FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH redundant, deprecated, and ignored. The new behavior is what every major user of FreeType has been requesting. Global advance is broken in many CJK fonts. Just ignoring it by default makes most sense. * src/truetype/ttdriver.c (tt_get_advances), src/truetype/ttgload.c (TT_Get_HMetrics, TT_Get_VMetrics, tt_get_metrics, compute_glyph_metrics, TT_Load_Glyph), src/truetype/ttgload.h: Implement it. * docs/CHANGES: Updated.
Behdad Esfahbod 5594c2d1 2013-03-06T19:37:31 [FT] Just return if glyph name not found The fallback happens in higher level already. No need to do here.
Behdad Esfahbod e9171af5 2013-01-29T22:45:00 Bug 60053 - hb-common.cc:181:6: warning: ‘void free_langs()’ defined but not used
Behdad Esfahbod d05ac7dc 2012-11-12T10:26:50 Fix hb-ft glyph name for broken fonts that return empty glyph names
Behdad Esfahbod 21756934 2012-08-08T01:20:45 [OT] Implement fallback positioning Implemented for Arabic, Hebrew, and generic marks. Activated if no GPOS table present.
Behdad Esfahbod 271c8f89 2012-07-13T09:32:30 Minor
Behdad Esfahbod 2023e2b5 2012-07-11T19:00:30 [ft] Disable ppem setting The calculations were wrong. FreeType makes it really hard to set size and ppem independently. For now, disable it. Need to come up with a fix later.
Behdad Esfahbod cdf74445 2012-07-11T18:52:39 [ft] Use unfitted kerning if x_ppem is zero
Behdad Esfahbod 0594a244 2012-06-05T20:35:40 Cleanup TRUE/FALSE vs true/false
Behdad Esfahbod f64b2ebf 2012-06-05T19:23:29 Remove last static initializer We're free! Lazy or immediate...
Behdad Esfahbod 04aed572 2012-06-05T18:30:19 Make hb-ft static-initializer free
Behdad Esfahbod f06ab8a4 2012-06-05T12:31:51 Better hide nil objects and make them const
Behdad Esfahbod bce09552 2012-05-27T11:29:21 Add hb_font_get_glyph_name() and hb_font_get_glyph_from_name()
Behdad Esfahbod 323190c2 2012-04-12T12:29:10 Minor
Behdad Esfahbod 0b7e4d9f 2011-08-15T20:41:59 [ft] FT_Get_Advance() for advance-width callbacks Using graphite2's comparerenderer suggests that this makes hb-ft 15 times faster. No caching layer needed anymore.
Behdad Esfahbod 553bc3de 2011-08-15T16:21:06 Minor
Behdad Esfahbod 254142bb 2011-08-15T16:15:44 [ft] FT_Select_Charmap() when we create face
Behdad Esfahbod 9527fb20 2011-08-13T19:03:48 Fix missing return
Behdad Esfahbod 01ec13a1 2011-08-10T22:00:35 Implement hb_ft_font_get_face
Behdad Esfahbod 13a601fe 2011-08-09T11:36:54 [FT] Don't make font immutable
Behdad Esfahbod 38b21187 2011-08-09T10:51:24 [API] Add hb_ft_font_set_funcs(), remove hb_ft_get_font_funcs() Remove hb_ft_get_font_funcs() as it cannot be used by the user anyway. Add hb_ft_font_set_funcs(). Which will make the font internally use FreeType. That is, no need for the font to have created using the hb-ft API. Just create using hb_face_create()/hb_font_create() and then call this on the font (after having set font scale). This internally creates an FT_Face and attached to the font.
Behdad Esfahbod de1e1cf9 2011-08-09T00:19:38 [FT] Adapt to new face API
Behdad Esfahbod 3897335c 2011-08-08T23:37:41 [API] Sort out get_blob API hb_face_get_blob() renamed to hb_face_reference_blob(), returns a reference now. hb_face_[sg]et_index() added. hb_face_set_upem() added.
Behdad Esfahbod e715784b 2011-08-08T21:42:02 Rename get_table to reference_table in all API
Behdad Esfahbod c605bbbb 2011-08-04T20:00:53 Remove C++ guards from source files Where causing issues for people with MSVC.
Behdad Esfahbod 2d8ebcb9 2011-05-25T11:27:33 [API] One last font-funcs API change Now that vertical text works correctly, I'm doing a last round modification of the font-funcs API to simplify. Expect no more changes around here.
Behdad Esfahbod 60fbb360 2011-05-19T18:46:15 [Vertical] GPOS is always done with horizontal origin
Behdad Esfahbod 8b38faee 2011-05-19T13:08:00 More vertical Starting to get there, but not without yet another round of changes. I think I know wheere to go now.
Behdad Esfahbod 19098185 2011-05-17T23:27:22 Cosmetic
Behdad Esfahbod 7e2c85de 2011-05-17T17:55:03 [API] Vertical support, take 2 I like this API *much* better. Implementation still incomplete, but horizontal works.
Behdad Esfahbod 744970af 2011-05-16T18:15:37 [API] Add support for vertical text Design not final yet, and in fact I'm going to change it immediately, but this is an standalone change for itself.
Behdad Esfahbod 56d12e03 2011-05-16T16:01:58 Remove unnecessary TODO item
Behdad Esfahbod 0fd8c2f1 2011-05-12T15:14:13 [API] Make get_glyph() callback return a boolean We need to know whether the glyph exists, so we can fallback to composing / decomposing. Assuming that glyph==0 means "doesn't exist" wouldn't work for applications like Pango that want to use different "doesn't exist" glyph codes for different characters. An explicit return value fixes that.
Behdad Esfahbod 805af724 2011-05-12T12:39:40 Rename get_kernings() arguments from first/second_glyph to left/right_glyph Makes it clear that kerning is in visual order.
Behdad Esfahbod 7033518f 2011-05-11T23:31:15 [API] Pass face to get_table()
Behdad Esfahbod b4678278 2011-05-11T23:25:28 [API] Remove const from font user_data
Behdad Esfahbod 9a14688e 2011-05-11T22:49:29 [API] Rename hb_face_create_for_data() to hb_face_create()
Behdad Esfahbod a513dbcf 2011-05-11T00:24:34 [API] Change signature of get_contour_point and get_kerning ffuncs get_contour_point now takes glyph id before point_index. get_kerning now takes a vector to fill-in.
Behdad Esfahbod b9d975b9 2011-05-10T20:41:13 [API] Pass down closure user_data to font funcs
Behdad Esfahbod d2928858 2011-05-03T01:03:53 [ft] Fix font->face handling Don't use _cached()
Behdad Esfahbod 72657e4c 2011-05-02T20:46:32 [API] Make hb_font_create() take a face and reference it
Behdad Esfahbod fca368c4 2011-04-21T18:24:02 Add hb_object_header_t which is the common part of all objects Makes way for adding arbitrary user_data support.
Behdad Esfahbod 2409d5f8 2011-04-21T17:14:28 Update Copyright headers
Behdad Esfahbod 783a7d69 2011-04-21T16:03:59 [TODO] Remove finished items
Behdad Esfahbod c57d454a 2011-04-20T18:50:27 Rename all private sources and headers to C++ files So we can liberally use the simple features of C++ that parts of the codebase is already using.
Behdad Esfahbod cc6d5227 2010-07-23T15:00:13 De-C++ where possible Helps with avoiding many "extern C" declarations in source files.
Behdad Esfahbod c442672e 2010-05-24T18:02:32 Fix struct initializers
Behdad Esfahbod 750a2294 2010-05-20T16:23:27 get_table() is allowed to return NULL. Use that to simplify code
Behdad Esfahbod 0a4399ca 2010-05-19T15:45:06 Fix scale issues hb_font_set_scale() now sets the value to be used to represent a unit pixel. For example, if rendering a 10px font with a 26.6 representation, you would set scale to (10 << 6). For 10px in 16.16 you would set it to (10 << 16). This space should be the same space that the get_glyph_metrics and get_kerning callbacks work in.
Behdad Esfahbod 22da7fd9 2010-05-12T18:23:21 Rename a few files to be C++ sources In anticipation for buffer revamp coming.