src/hb-font.cc


Log

Author Commit Date CI Message
Behdad Esfahbod 28de104f 2015-11-04T22:00:25 Move variable-sized struct member to end Hopefully makes clang build happy
Behdad Esfahbod 762770c9 2015-11-04T21:42:55 Add font->has_...() to check for individual nil font funcs Hopefully this wouldn't break any compiler. There was some magic moments to getting this to compile...
Behdad Esfahbod 88e9a9bc 2015-11-04T21:16:26 Minor reshaping of hb_font_funcs_t implementation In anticipation of further changes. No functional changes.
Behdad Esfahbod da29b437 2015-11-04T20:22:44 Separate nil font-funcs from parent-peeking font-funcs API change: all fonts created with hb_font_create() now inherit from (ie have parent) hb_font_get_empty().
Behdad Esfahbod 3e905e39 2015-10-08T12:51:02 Add hb_font_set_parent() No reason to not have it. Makes life easier later. We (hb-ft, hb-ot-font, etc) can use this API to inject new parent into a font...
Behdad Esfahbod 88da7bba 2015-10-02T14:38:20 Default font scale to face upem Makes for a better default and avoids nasty inheritance issues. See mailing list thread "Default hb_font_t scale".
Behdad Esfahbod 1866e171 2015-10-02T14:21:29 Make hb_font_create_sub_font() NOT make parent immutable We don't rely on that. However, whenever hb_font_make_immutable() is called, it makes its parenting chain immutable.
Behdad Esfahbod 5d74ff02 2015-09-03T14:55:59 Fix Since: version tags on font and face APIs A while back we marked every API as version:1.0. We should fix them all to reflect real version they were introduced. This is a start. Patch from Nikolay Sivov.
Sascha Brawer 01c3a885 2015-06-01T13:22:01 Fix "Since:" tags Based on data from http://upstream-tracker.org/versions/harfbuzz.html Resolves #103
Behdad Esfahbod eb0bf3ae 2014-08-06T15:36:41 Relax inert checks Previously, when creating an object from inert inputs (eg: "hb_font_create(hb_face_get_empty())") we returned the inert empty object. This is not helpful as there are legitimate usecases to do that. We now never return the inert object unless allocation failed. Tests are revised to reflect.
Khaled Hosny a394bb66 2015-03-22T20:29:10 [bindings] Fix *_from_string functions Without the element-type they will be getting garbage, at least with Python.
Behdad Esfahbod 3f310dc0 2014-07-22T16:26:27 Disallow changing settings on immutable face Ouch!
Behdad Esfahbod 2a8c49ad 2013-12-11T20:22:28 Remove unnecessary includes
Behdad Esfahbod a8949df4 2013-09-13T20:23:51 [introspection] Annotate Unicode / font callbacks Should move these out of the public header... We're "clean" of introspection warnings now. Remaining ones are about graphite2 / freetype types not being introspectable.
Behdad Esfahbod 085d4291 2013-09-12T17:14:33 [introspection] Disable constructors for now Since our types are not associated with their methods, marking constructors makes them inaccessible from bindings. Undo for now.
Behdad Esfahbod 70303cf2 2013-09-06T17:35:57 [docs/introspection] Some more annotations
Behdad Esfahbod 288f2899 2013-09-06T15:40:22 [docs/introspection] More annotations
Behdad Esfahbod 2e3a07ab 2013-08-26T18:49:07 Separate face source code from font Makes documentation / introspection easier.
Behdad Esfahbod e05a9994 2012-11-15T16:23:21 Add hb_face_[sg]et_glyph_count()
Behdad Esfahbod 7c8e844d 2012-08-28T17:57:49 Use namespace for OpenType tables Avoids USHORT, SHORT, ULONG, LONG clashes with Windows API.
Behdad Esfahbod 4c8ac4f4 2012-08-08T17:44:19 Misc minor fixes
Behdad Esfahbod 6f3a3001 2012-08-07T22:13:25 Add hb_font_glyph_from/to_string
Behdad Esfahbod 368b4e76 2012-08-06T23:06:04 Minor
Behdad Esfahbod 66591ece 2012-08-06T17:07:19 Remove unnecessary lifecycle bits We already set recount to INVALID when destroying. This block was not necessary.
Behdad Esfahbod 8fbfda92 2012-08-01T19:03:46 Inline font getters
Behdad Esfahbod 2f87cebe 2012-07-27T04:02:38 Implement shape_plan caching Should give us some performance boost.
Behdad Esfahbod ea278d38 2012-07-27T02:12:28 Partially switch ot shaper to shape_plan
Behdad Esfahbod 027857d0 2012-07-26T17:34:25 Start adding a unified shaper access infrastructure Add global shape_plan. Unused so far.
Behdad Esfahbod 1bc1cb36 2012-06-16T15:21:55 Make source more digestable for gobject-introspection
Behdad Esfahbod 0594a244 2012-06-05T20:35:40 Cleanup TRUE/FALSE vs true/false
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 20fdb0f4 2012-05-17T22:04:45 Add a lock-free cache type for int->int functions To be used for cmap and advance caching if desired.
Behdad Esfahbod d993e723 2012-05-13T16:04:36 Fix hb_face_set_index()
Behdad Esfahbod 0cd33592 2011-09-21T16:49:33 Fix possible leaks
Behdad Esfahbod b9415e76 2011-08-17T19:21:44 [API] Add hb_font_set_funcs_data()
Behdad Esfahbod 7a750ac3 2011-08-17T14:19:59 Rename table files from eg maxp-private.hh to maxp-table.hh
Behdad Esfahbod 33ccc779 2011-08-09T00:43:24 [API] Make set_user_data() functions take a replace parameter We need this to set data on objects safely without worrying that some other thread unsets it by setting it at the same time.
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 bf8c57ba 2011-08-03T17:38:04 [API] Add hb_face_get_blob() Need to think more about it.
Behdad Esfahbod 4b6317c4 2011-07-07T23:14:42 More code shuffling
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 67d51ff9 2011-05-19T19:08:57 [Vertical] Do fallback origin calculation
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 b8d76dd7 2011-05-17T23:31:00 Vertical: Adjust origin in glyph_extents() and glyph_contour_point() The base for vertical is almost ready now.
Behdad Esfahbod 19098185 2011-05-17T23:27:22 Cosmetic
Behdad Esfahbod 2c3f51a1 2011-05-17T23:23:27 Minor
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 7fc5a30c 2011-05-12T17:48:20 [API] Add hb_face_make/is_immutable()
Behdad Esfahbod 20c8b908 2011-05-12T15:19:33 Finish off previous change
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 52df150e 2011-05-12T00:46:57 Fix font subclass chainup Test passing now.
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 80a6833b 2011-05-11T18:14:44 [API] Add hb_*_get_empty() for all objects
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 63d646fb 2011-05-11T00:15:37 [font] Do user-space conversion when chaining up to parent font
Behdad Esfahbod abcfe9b5 2011-05-11T00:02:02 Remove hb_ot_layout_context_t, simplify code
Behdad Esfahbod 1ded6d8b 2011-05-10T20:49:02 Make default font-funcs chain-up to the parent
Behdad Esfahbod b9d975b9 2011-05-10T20:41:13 [API] Pass down closure user_data to font funcs
Behdad Esfahbod 686c2d16 2011-05-10T20:04:26 [API] Remove font_funcs func getter functions
Behdad Esfahbod defc45be 2011-05-10T20:02:49 [API] Add hb_font_create_sub_font() and hb_font_get_parent() Not quite useful just yet.
Behdad Esfahbod 85e6218e 2011-05-10T19:40:44 [API] Remove broken-by-design hb_font_unset_funcs()
Behdad Esfahbod 74f1d896 2011-05-10T19:39:32 Add hb_font_make/is_immutable()
Behdad Esfahbod 1c9f8717 2011-05-06T22:28:26 [API] Simplify blob API, remove lock
Behdad Esfahbod 56eb5ad6 2011-05-04T19:27:37 Move code around Mutex (and Windows.h by extension) are fairly isolated now.
Behdad Esfahbod 266b3441 2011-05-03T00:35:53 Refactor to keep hb-object-private.h and hb-open-type.h separate Needed to be able to include <Windows.h> from hb-object-private.h.
Behdad Esfahbod 72657e4c 2011-05-02T20:46:32 [API] Make hb_font_create() take a face and reference it
Behdad Esfahbod cec6611c 2011-05-02T20:18:58 Protect NULL in a couple places
Behdad Esfahbod 4911062d 2011-05-02T19:36:39 [API] Rename hb_blob_create_empty() to hb_blob_get_empty()
Behdad Esfahbod 1ab1d3e3 2011-05-02T19:35:53 [face] Return nil face if blob is inert
Behdad Esfahbod c7ffe2ad 2011-04-28T16:03:29 [API Remove hb_font_funcs_copy() Will be adding font_funcs subclassing instead.
Behdad Esfahbod 5fa849b7 2011-04-27T21:46:01 [API] Add _set/get_user_data() for all objects
Behdad Esfahbod 47e71d96 2011-04-27T16:38:03 [object] Remove unnecessary use of macros
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 da975419 2011-04-21T15:08:01 [API] Allow negative font x_scale/y_scale I was reconsidering whether y should grow down, since all three/four times I've used this API I was tricked and got that wrong in my use. So I was very inclined to make y grow down instead of up. However, considering that the font space has y up and it would be very confusing for callbacks to work against that, I decided that what I really want is for the user to be able to set y_scale to a negative number to imply that user-space y grows down. Changing x_scale/y_scale from unsigned int to int allows that, and I've made pango to use that instead of negating glyph y_offset later. hb-ft however still has y group up. I *guess* that's how FreeType works? I'm not sure, FreeType docs don't make this clear... I'm happy with the resolution :-).
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 9417c1c0 2011-04-20T17:21:23 [API] Make hb_face_reference_table() return empty blob instead of NULL The idea here is that: - Like pretty much all other API in harfbuzz, user does not have to check for NULL. - In any caller code, the case of missing table should be handled exactly the same way that a too-short table is handled. Turning a non-existent talbe into a table of size 0 makes the user code safer.
Behdad Esfahbod c035812f 2011-04-20T17:03:00 [API] Rename hb_face_get_table() to hb_face_reference_table() That correctly reflects the reference ownership transfer happening.
Behdad Esfahbod af029337 2011-04-20T15:49:31 [API] Remove hb_*_get_reference_count() This was a bizzare piece of API that I inherited from cairo. It has been wrong adding them to cairo in the first place. Remove them before someone uses them!
Behdad Esfahbod 5668189c 2011-04-20T03:03:32 [API] font: move user_data before destroy() This is the common convention for language binding tools.
Behdad Esfahbod 502f4cba 2010-10-27T01:13:56 Divide get_metrics into get_advance and get_extents Graphite module not updated. Bump version to 0.3.
Behdad Esfahbod ec6c0e54 2010-10-26T11:28:14 Fix blob leak
Behdad Esfahbod 3111b8a0 2010-10-13T10:41:53 Fix stupid bug, oops
Behdad Esfahbod e81d7afe 2010-10-04T18:18:48 Add hb_face_get_upem()
Behdad Esfahbod 645f6f26 2010-10-04T17:01:01 Add is_mutable() functions Correspond to the make_mutable() ones.
Behdad Esfahbod 19c0eab8 2010-10-04T16:45:21 Add getters for all setter APIs One in particular is not a straight getter: hb_font_unset_funcs() is special because of the specific needs of the lifecycle management of the user_data object.
Behdad Esfahbod 8e577aca 2010-09-22T17:37:02 Fix blob refcounting with insane SFNT table directories
Behdad Esfahbod acdba3f9 2010-07-23T15:11:18 Prefer C linkage
Behdad Esfahbod cc6d5227 2010-07-23T15:00:13 De-C++ where possible Helps with avoiding many "extern C" declarations in source files.
Behdad Esfahbod f97bf4f8 2010-05-24T17:50:19 Make sure we initialize all callbacks upon creation Also fixes issue with unicode callbacks never being set really.
Behdad Esfahbod bf36a107 2010-05-24T17:46:21 Move all callback functions in a vtable structs
Behdad Esfahbod 280af1bd 2010-05-20T18:33:35 Let hb_face_get_table() return NULL if table not found