Commit Graph

1306 Commits

Author SHA1 Message Date
Behdad Esfahbod 376dafa6ed Hide internal symbols 2011-05-27 03:40:04 -04:00
Behdad Esfahbod 329c15714b Add libtool versioning
The versioning is automatic.  For now, soname-major is 0.  With
the 1.0.0 release it will jump to 1 and stay there forever.
2011-05-25 16:07:07 -04:00
Behdad Esfahbod 2d8ebcb9d0 [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.
2011-05-25 11:27:33 -04:00
Behdad Esfahbod 7403e055cd [Vertical] fix vertical gpos
Wow, it took me a few days to find the right fix!

We now set the advance for attached marks to zero, but we
do this in the _finish() state of gpos, so it shouldn't
regress with fonts like DejaVuSansMono that explicitly
decrease the mark advance width to set it to zero.
2011-05-25 10:52:15 -04:00
Behdad Esfahbod 3b0bb855e0 [Vertical] GPOS x/y advance adjustments only apply in hori/vert respectively 2011-05-20 15:59:59 -04:00
Behdad Esfahbod cc2086d67c [Vertical] Fix GPOS y-advance direction 2011-05-19 19:19:50 -04:00
Behdad Esfahbod 67d51ff961 [Vertical] Do fallback origin calculation 2011-05-19 19:08:57 -04:00
Behdad Esfahbod 60fbb36096 [Vertical] GPOS is always done with horizontal origin 2011-05-19 18:46:15 -04:00
Behdad Esfahbod 8b38faeede More vertical
Starting to get there, but not without yet another round of changes.

I think I know wheere to go now.
2011-05-19 13:08:00 -04:00
Behdad Esfahbod e609aeb1e2 [hb-view] Add --annotate
Currently it only marks glyph origins.
2011-05-18 10:17:02 -04:00
Behdad Esfahbod b8d76dd74e Vertical: Adjust origin in glyph_extents() and glyph_contour_point()
The base for vertical is almost ready now.
2011-05-17 23:31:00 -04:00
Behdad Esfahbod 190981851f Cosmetic 2011-05-17 23:27:22 -04:00
Behdad Esfahbod 2c3f51a11c Minor 2011-05-17 23:23:27 -04:00
Behdad Esfahbod 7e2c85de30 [API] Vertical support, take 2
I like this API *much* better.  Implementation still incomplete, but
horizontal works.
2011-05-17 17:55:03 -04:00
Behdad Esfahbod 744970af4d [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.
2011-05-17 17:12:34 -04:00
Behdad Esfahbod 4053f3f788 Cosmetic 2011-05-16 17:03:27 -04:00
Behdad Esfahbod 56d12e0356 Remove unnecessary TODO item 2011-05-16 16:01:58 -04:00
Behdad Esfahbod 1883af3796 [hb-view] Start work on vertical support 2011-05-16 15:18:16 -04:00
Behdad Esfahbod 9aa6f96af5 [hb-view] No need to allocate an extra glyph item at the end 2011-05-16 15:08:31 -04:00
Behdad Esfahbod 1a64f6e19a [API] Add HB_LANGUAGE_INVALID 2011-05-13 22:55:32 -04:00
Behdad Esfahbod 40b5c2e86c [test/test-ot-tag] Test hb-ot-tag.h, fix many bugs
I'm in awe with how many bugs this test revealed.  All fixed.
2011-05-13 22:46:36 -04:00
Behdad Esfahbod 7fc5a30cb4 [API] Add hb_face_make/is_immutable() 2011-05-12 17:48:20 -04:00
Behdad Esfahbod 20c8b908dd Finish off previous change 2011-05-12 15:19:33 -04:00
Behdad Esfahbod 0fd8c2f1be [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.
2011-05-12 15:14:13 -04:00
Behdad Esfahbod 805af72405 Rename get_kernings() arguments from first/second_glyph to left/right_glyph
Makes it clear that kerning is in visual order.
2011-05-12 12:39:40 -04:00
Behdad Esfahbod df077fadd7 [object] Make object inert during destruction
Such that user_data and other finalizers cannot resurrect object
2011-05-12 01:19:39 -04:00
Behdad Esfahbod 52df150efe Fix font subclass chainup
Test passing now.
2011-05-12 00:46:57 -04:00
Behdad Esfahbod 7033518f75 [API] Pass face to get_table() 2011-05-11 23:31:15 -04:00
Behdad Esfahbod b467827806 [API] Remove const from font user_data 2011-05-11 23:25:28 -04:00
Behdad Esfahbod 9a14688e40 [API] Rename hb_face_create_for_data() to hb_face_create() 2011-05-11 22:49:29 -04:00
Behdad Esfahbod 46d6a21cc8 [API] Add hb_ot_layout_substitute_start/finish() 2011-05-11 22:33:13 -04:00
Behdad Esfahbod c84d15f52e Remove unused hb_set_t 2011-05-11 22:23:15 -04:00
Behdad Esfahbod 389a7c9e67 Remove hb_static_threadsafe_set_t 2011-05-11 22:21:38 -04:00
Behdad Esfahbod e06d4eda7b Use constructor/destructor for hb_ot_shape_plan_t 2011-05-11 22:18:31 -04:00
Behdad Esfahbod daa446f184 Fix compile with no mutex available 2011-05-11 21:31:25 -04:00
Behdad Esfahbod 1e56c476c1 Free static mutex'es 2011-05-11 21:28:01 -04:00
Behdad Esfahbod 831886a9b4 Streamline mutex stuff 2011-05-11 21:27:52 -04:00
Behdad Esfahbod 438c4eee35 Remove unused hb_mutex_trylock() 2011-05-11 21:14:34 -04:00
Behdad Esfahbod 80a6833b03 [API] Add hb_*_get_empty() for all objects 2011-05-11 18:21:58 -04:00
Behdad Esfahbod d3b30be378 [API] Add HB_UNTAG()
Useful in C API only.
2011-05-11 18:06:12 -04:00
Behdad Esfahbod 3cc6e9dcb4 Minor 2011-05-11 18:02:48 -04:00
Behdad Esfahbod 4101ca7dbb Plug more leaks
All good now.
2011-05-11 14:30:56 -04:00
Behdad Esfahbod 6a7ac79e26 Plug leaks 2011-05-11 14:19:18 -04:00
Behdad Esfahbod 7aa12ebdff [unicode] Simplify method setting 2011-05-11 11:55:11 -04:00
Behdad Esfahbod d5bfd02721 Minor 2011-05-11 11:48:28 -04:00
Behdad Esfahbod 6a4e7e1372 Add maxp table
Not used for anything right now.  Will use to get num_glyphs in the future.
2011-05-11 10:31:33 -04:00
Behdad Esfahbod a513dbcf73 [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.
2011-05-11 00:38:22 -04:00
Behdad Esfahbod 63d646fb29 [font] Do user-space conversion when chaining up to parent font 2011-05-11 00:15:37 -04:00
Behdad Esfahbod b6f902a1a9 Minor 2011-05-11 00:04:15 -04:00
Behdad Esfahbod abcfe9b59b Remove hb_ot_layout_context_t, simplify code 2011-05-11 00:02:02 -04:00
Behdad Esfahbod 1ded6d8bbf Make default font-funcs chain-up to the parent 2011-05-10 20:50:06 -04:00
Behdad Esfahbod b9d975b931 [API] Pass down closure user_data to font funcs 2011-05-10 20:41:13 -04:00
Behdad Esfahbod 446df9cdb1 Whitespace 2011-05-10 20:14:44 -04:00
Behdad Esfahbod 686c2d165d [API] Remove font_funcs func getter functions 2011-05-10 20:04:26 -04:00
Behdad Esfahbod defc45be6d [API] Add hb_font_create_sub_font() and hb_font_get_parent()
Not quite useful just yet.
2011-05-10 20:02:49 -04:00
Behdad Esfahbod 11bb8fe7b3 [font] Fix internal sign of x/y_scale
Should have been done as part of da97541988
2011-05-10 19:57:00 -04:00
Behdad Esfahbod 85e6218e33 [API] Remove broken-by-design hb_font_unset_funcs() 2011-05-10 19:40:44 -04:00
Behdad Esfahbod 74f1d896f2 Add hb_font_make/is_immutable() 2011-05-10 19:39:32 -04:00
Behdad Esfahbod 8c7a100a4d Fix build without mutex 2011-05-10 19:21:07 -04:00
Behdad Esfahbod 19d3035c40 Remove duplicate atomic_int implementation 2011-05-10 19:18:12 -04:00
Behdad Esfahbod 45bfa99034 Fix set implementation to be truly threadsafe even with destroy() callbacks
The test/object test is passing again, instead of deadlocking.
2011-05-10 19:15:49 -04:00
Behdad Esfahbod 1c9f8717eb [API] Simplify blob API, remove lock 2011-05-06 22:59:42 -04:00
Behdad Esfahbod a0f337a1cc Remove unused hb_blob_try_writable_inplace() 2011-05-06 19:20:52 -04:00
Behdad Esfahbod 08611d5194 Add note re deadlocks 2011-05-06 16:28:10 -04:00
Behdad Esfahbod 34fb5521a5 [API] Add hb_language_get_default()
It uses locale information to detect default language.  It's used by
hb_shape() whenever language is not set on the buffer.

Not sure how to properly test it in the test suite.  Tested by observing
that with DejaVu Sans we select the proper local glyph version for U+431
under Serbian locale.  See http://www.pango.org/ScriptGallery
2011-05-06 00:05:08 -04:00
Behdad Esfahbod c78f448558 [API] Add version macros and functions
Step version up to 0.5.0.

Also, fix to pass "make distcheck"
2011-05-05 21:31:04 -04:00
Behdad Esfahbod 3935af1c0d [buffer] Remove wrong optimization
While the cluster fields of the glyph string are usually sorted, they
wouldn't be in special cases (for example for non-native direction).
Blindly using bsearch is plain wrong.  If we want to reintroduce this
optimization we have to make sure we know the buffer clusters are
monotonic and in which direction.  Not sure it's worth it though.
2011-05-05 16:09:45 -04:00
Behdad Esfahbod 46df682851 Make user_data access threadsafe
For now, by taking a global user_data mutex.
2011-05-05 15:33:19 -04:00
Behdad Esfahbod 218e67b9ee Shrink code 2011-05-05 15:28:37 -04:00
Behdad Esfahbod b8d6183ebc Use threadsafe set implementation for hb_language lookups
Note that the static variable has to be a global static, as gcc
implements local statics differently and that would require linking
to libstdc++, which we don't want.
2011-05-05 15:14:04 -04:00
Behdad Esfahbod d37486d87b Add hb_threadsafe_set_t 2011-05-05 15:07:54 -04:00
Behdad Esfahbod b45f32ee4e Use hb_array_t for hb_language_t mapping 2011-05-05 15:00:43 -04:00
Behdad Esfahbod 21d2c92fdf Move code around 2011-05-05 14:47:53 -04:00
Behdad Esfahbod 265ac614ea Replace fixed-size lookup_maps array with hb_array_t 2011-05-05 14:38:16 -04:00
Behdad Esfahbod 6843569d2c Replace fixed-size feature_maps array with hb_array_t 2011-05-05 14:30:51 -04:00
Behdad Esfahbod 44b0a4d2fc Replace fixed-size feature_infos array with hb_array_t 2011-05-05 13:42:19 -04:00
Behdad Esfahbod b214ec3ac0 Minor 2011-05-05 13:24:07 -04:00
Behdad Esfahbod 811482bd65 Replace hb_map_t with hb_set_t which is more intuitive and flexible 2011-05-05 13:21:04 -04:00
Behdad Esfahbod 478a42536f Make array/map implementation more generic 2011-05-05 12:39:51 -04:00
Behdad Esfahbod b81bd42951 Make hb_mutex_*() macros take a pointer
More intuitive.
2011-05-05 00:21:16 -04:00
Behdad Esfahbod a4b1900913 Add hb_static_mutex_t 2011-05-05 00:17:43 -04:00
Behdad Esfahbod 56eb5ad6f9 Move code around
Mutex (and Windows.h by extension) are fairly isolated now.
2011-05-04 19:27:37 -04:00
Behdad Esfahbod d292885893 [ft] Fix font->face handling
Don't use _cached()
2011-05-03 01:03:53 -04:00
Behdad Esfahbod 2000179487 Move Win32 thread-safety stuff to hb-object-private.h
The Win32 definitions for LONG, ULONG, etc conflicts with
hb-open-type.h.  Avoid that by making sure hb-object-private.h
and hb-open-type.h are not included in the same compilation unit.
2011-05-03 00:49:06 -04:00
Behdad Esfahbod 266b34418c 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.
2011-05-03 00:35:53 -04:00
Behdad Esfahbod d4141a44b9 [blob] Implement sub_blob() in terms of create()
Fixes problem with uninitialized sub_blob->mutex among other things.

Reported by Bradley Grainger.
2011-05-03 00:19:18 -04:00
Behdad Esfahbod fc52e9e44c Implement win32 thread-safety stuff
Patch from Bradley Grainger.
2011-05-03 00:09:16 -04:00
Behdad Esfahbod f55272ecde Add hb_mutex_free() and use it
Based on patch by Bradley Grainger.
2011-05-02 20:57:28 -04:00
Behdad Esfahbod 8d5186484b Cosmetic 2011-05-02 20:52:21 -04:00
Behdad Esfahbod 72657e4ce7 [API] Make hb_font_create() take a face and reference it 2011-05-02 20:47:23 -04:00
Behdad Esfahbod cec6611c5c Protect NULL in a couple places 2011-05-02 20:18:58 -04:00
Behdad Esfahbod 5a5030366e Fix bug in array growth implementation
With this, test/object is now passing.  Yay!
2011-05-02 19:54:29 -04:00
Behdad Esfahbod 16123e1070 Fix bug in map implementation 2011-05-02 19:54:17 -04:00
Behdad Esfahbod 1cd5969f25 [object] Fix bug in get_user_data() implementation 2011-05-02 19:53:39 -04:00
Behdad Esfahbod 4911062d5b [API] Rename hb_blob_create_empty() to hb_blob_get_empty() 2011-05-02 19:36:39 -04:00
Behdad Esfahbod 1ab1d3e38c [face] Return nil face if blob is inert 2011-05-02 19:35:53 -04:00
Behdad Esfahbod e87867cb88 [buffer] Fail in _create() if we cannot pre-allocate the requested size 2011-05-02 19:35:05 -04:00
Behdad Esfahbod c784c67a28 [unicode] Make _get_parent() return _nil object instead of NULL 2011-05-02 15:59:57 -04:00
Behdad Esfahbod 03034acb8a [icu] Make sure we return script UNKNOWN instead of INVALID 2011-05-02 12:37:45 -04:00
Behdad Esfahbod d02985ec5a ISO 15924 fixes
Update to http://unicode.org/iso15924

Fixes some of the test failures in test-unicode with ICU.  Still
one more to fix before the test passes.
2011-05-02 12:35:14 -04:00