Behdad Esfahbod [Wed, 11 May 2011 14:31:33 +0000 (10:31 -0400)]
Add maxp table
Not used for anything right now. Will use to get num_glyphs in the future.
Behdad Esfahbod [Wed, 11 May 2011 12:58:21 +0000 (08:58 -0400)]
Minor
Behdad Esfahbod [Wed, 11 May 2011 04:24:34 +0000 (00:24 -0400)]
[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 [Wed, 11 May 2011 04:15:37 +0000 (00:15 -0400)]
[font] Do user-space conversion when chaining up to parent font
Behdad Esfahbod [Wed, 11 May 2011 04:04:15 +0000 (00:04 -0400)]
Minor
Behdad Esfahbod [Wed, 11 May 2011 04:02:02 +0000 (00:02 -0400)]
Remove hb_ot_layout_context_t, simplify code
Behdad Esfahbod [Wed, 11 May 2011 00:49:02 +0000 (20:49 -0400)]
Make default font-funcs chain-up to the parent
Behdad Esfahbod [Wed, 11 May 2011 00:41:13 +0000 (20:41 -0400)]
[API] Pass down closure user_data to font funcs
Behdad Esfahbod [Wed, 11 May 2011 00:14:44 +0000 (20:14 -0400)]
Whitespace
Behdad Esfahbod [Wed, 11 May 2011 00:04:26 +0000 (20:04 -0400)]
[API] Remove font_funcs func getter functions
Behdad Esfahbod [Wed, 11 May 2011 00:02:49 +0000 (20:02 -0400)]
[API] Add hb_font_create_sub_font() and hb_font_get_parent()
Not quite useful just yet.
Behdad Esfahbod [Tue, 10 May 2011 23:57:00 +0000 (19:57 -0400)]
[font] Fix internal sign of x/y_scale
Should have been done as part of
da975419884a535281745f30f4b32fee0bc8a7a1
Behdad Esfahbod [Tue, 10 May 2011 23:40:44 +0000 (19:40 -0400)]
[API] Remove broken-by-design hb_font_unset_funcs()
Behdad Esfahbod [Tue, 10 May 2011 23:39:32 +0000 (19:39 -0400)]
Add hb_font_make/is_immutable()
Behdad Esfahbod [Tue, 10 May 2011 23:21:07 +0000 (19:21 -0400)]
Fix build without mutex
Behdad Esfahbod [Tue, 10 May 2011 23:18:12 +0000 (19:18 -0400)]
Remove duplicate atomic_int implementation
Behdad Esfahbod [Tue, 10 May 2011 23:12:49 +0000 (19:12 -0400)]
Fix set implementation to be truly threadsafe even with destroy() callbacks
The test/object test is passing again, instead of deadlocking.
Behdad Esfahbod [Tue, 10 May 2011 23:11:27 +0000 (19:11 -0400)]
[test] Always initialize gthread such that our mutex() stuff is tested
Now the test/object test deadlocks as expected. Fix coming.
Behdad Esfahbod [Tue, 10 May 2011 23:00:07 +0000 (19:00 -0400)]
[test/object] Test user_data with destroy() callback that calls user_data
Exposes the non-atomicity of user_data opertaions at this time because
we call finish() while still locked and modifying the object. In fact,
I'm surprised that it doesn't deadlock. It should.
Behdad Esfahbod [Tue, 10 May 2011 21:55:40 +0000 (17:55 -0400)]
Add DOAP file
Behdad Esfahbod [Tue, 10 May 2011 21:48:34 +0000 (17:48 -0400)]
[test/blob] Fix bug in test
Behdad Esfahbod [Tue, 10 May 2011 21:41:44 +0000 (17:41 -0400)]
[test/blob] Add create_sub_blob()
Behdad Esfahbod [Tue, 10 May 2011 21:37:08 +0000 (17:37 -0400)]
[test] Test blob API
Behdad Esfahbod [Sat, 7 May 2011 02:28:26 +0000 (22:28 -0400)]
[API] Simplify blob API, remove lock
Behdad Esfahbod [Fri, 6 May 2011 23:30:59 +0000 (19:30 -0400)]
Add -Bsymbolic-functions to linker flags
Behdad Esfahbod [Fri, 6 May 2011 23:30:46 +0000 (19:30 -0400)]
[TODO] Update
Behdad Esfahbod [Fri, 6 May 2011 23:20:52 +0000 (19:20 -0400)]
Remove unused hb_blob_try_writable_inplace()
Behdad Esfahbod [Fri, 6 May 2011 20:28:10 +0000 (16:28 -0400)]
Add note re deadlocks
Behdad Esfahbod [Fri, 6 May 2011 04:04:28 +0000 (00:04 -0400)]
[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
Behdad Esfahbod [Fri, 6 May 2011 01:31:04 +0000 (21:31 -0400)]
[API] Add version macros and functions
Step version up to 0.5.0.
Also, fix to pass "make distcheck"
Behdad Esfahbod [Thu, 5 May 2011 23:47:59 +0000 (19:47 -0400)]
Add disable-static libtool flag
No one who builds harfbuzz static uses the autotools build system to do it.
Behdad Esfahbod [Thu, 5 May 2011 23:47:12 +0000 (19:47 -0400)]
Remove win32-dll libtool flag
Since we're not win32-dll clean the way libtool docs define it.
Behdad Esfahbod [Thu, 5 May 2011 23:37:53 +0000 (19:37 -0400)]
Add AC_CANONICAL_HOST
Behdad Esfahbod [Thu, 5 May 2011 20:24:42 +0000 (16:24 -0400)]
Fix build with older glib
Behdad Esfahbod [Thu, 5 May 2011 20:09:45 +0000 (16:09 -0400)]
[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.
Behdad Esfahbod [Thu, 5 May 2011 19:33:19 +0000 (15:33 -0400)]
Make user_data access threadsafe
For now, by taking a global user_data mutex.
Behdad Esfahbod [Thu, 5 May 2011 19:28:37 +0000 (15:28 -0400)]
Shrink code
Behdad Esfahbod [Thu, 5 May 2011 19:14:04 +0000 (15:14 -0400)]
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.
Behdad Esfahbod [Thu, 5 May 2011 19:07:54 +0000 (15:07 -0400)]
Add hb_threadsafe_set_t
Behdad Esfahbod [Thu, 5 May 2011 19:00:43 +0000 (15:00 -0400)]
Use hb_array_t for hb_language_t mapping
Behdad Esfahbod [Thu, 5 May 2011 18:47:53 +0000 (14:47 -0400)]
Move code around
Behdad Esfahbod [Thu, 5 May 2011 18:39:24 +0000 (14:39 -0400)]
[TODO] Remove done items
Behdad Esfahbod [Thu, 5 May 2011 18:38:16 +0000 (14:38 -0400)]
Replace fixed-size lookup_maps array with hb_array_t
Behdad Esfahbod [Thu, 5 May 2011 18:12:37 +0000 (14:12 -0400)]
Replace fixed-size feature_maps array with hb_array_t
Behdad Esfahbod [Thu, 5 May 2011 17:42:19 +0000 (13:42 -0400)]
Replace fixed-size feature_infos array with hb_array_t
Behdad Esfahbod [Thu, 5 May 2011 17:24:07 +0000 (13:24 -0400)]
Minor
Behdad Esfahbod [Thu, 5 May 2011 17:21:04 +0000 (13:21 -0400)]
Replace hb_map_t with hb_set_t which is more intuitive and flexible
Behdad Esfahbod [Thu, 5 May 2011 16:39:51 +0000 (12:39 -0400)]
Make array/map implementation more generic
Behdad Esfahbod [Thu, 5 May 2011 04:21:16 +0000 (00:21 -0400)]
Make hb_mutex_*() macros take a pointer
More intuitive.
Behdad Esfahbod [Thu, 5 May 2011 04:17:43 +0000 (00:17 -0400)]
Add hb_static_mutex_t
Behdad Esfahbod [Wed, 4 May 2011 23:27:37 +0000 (19:27 -0400)]
Move code around
Mutex (and Windows.h by extension) are fairly isolated now.
Behdad Esfahbod [Tue, 3 May 2011 05:03:53 +0000 (01:03 -0400)]
[ft] Fix font->face handling
Don't use _cached()
Behdad Esfahbod [Tue, 3 May 2011 04:49:06 +0000 (00:49 -0400)]
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.
Behdad Esfahbod [Tue, 3 May 2011 04:35:53 +0000 (00:35 -0400)]
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 [Tue, 3 May 2011 04:19:18 +0000 (00:19 -0400)]
[blob] Implement sub_blob() in terms of create()
Fixes problem with uninitialized sub_blob->mutex among other things.
Reported by Bradley Grainger.
Behdad Esfahbod [Tue, 3 May 2011 04:09:16 +0000 (00:09 -0400)]
Implement win32 thread-safety stuff
Patch from Bradley Grainger.
Behdad Esfahbod [Tue, 3 May 2011 00:57:28 +0000 (20:57 -0400)]
Add hb_mutex_free() and use it
Based on patch by Bradley Grainger.
Behdad Esfahbod [Tue, 3 May 2011 00:52:21 +0000 (20:52 -0400)]
Cosmetic
Behdad Esfahbod [Tue, 3 May 2011 00:46:32 +0000 (20:46 -0400)]
[API] Make hb_font_create() take a face and reference it
Behdad Esfahbod [Tue, 3 May 2011 00:18:58 +0000 (20:18 -0400)]
Protect NULL in a couple places
Behdad Esfahbod [Mon, 2 May 2011 23:54:29 +0000 (19:54 -0400)]
Fix bug in array growth implementation
With this, test/object is now passing. Yay!
Behdad Esfahbod [Mon, 2 May 2011 23:54:17 +0000 (19:54 -0400)]
Fix bug in map implementation
Behdad Esfahbod [Mon, 2 May 2011 23:53:39 +0000 (19:53 -0400)]
[object] Fix bug in get_user_data() implementation
Behdad Esfahbod [Mon, 2 May 2011 23:52:47 +0000 (19:52 -0400)]
[test/object] Add test for object lifecycle stuff
Revealed many bugs in the (untested and known buggy) user_data
support.
Behdad Esfahbod [Mon, 2 May 2011 23:52:32 +0000 (19:52 -0400)]
Cosmetic
Behdad Esfahbod [Mon, 2 May 2011 23:36:39 +0000 (19:36 -0400)]
[API] Rename hb_blob_create_empty() to hb_blob_get_empty()
Behdad Esfahbod [Mon, 2 May 2011 23:35:53 +0000 (19:35 -0400)]
[face] Return nil face if blob is inert
Behdad Esfahbod [Mon, 2 May 2011 23:35:05 +0000 (19:35 -0400)]
[buffer] Fail in _create() if we cannot pre-allocate the requested size
Behdad Esfahbod [Mon, 2 May 2011 20:54:05 +0000 (16:54 -0400)]
Cosmetic
Behdad Esfahbod [Mon, 2 May 2011 19:59:57 +0000 (15:59 -0400)]
[unicode] Make _get_parent() return _nil object instead of NULL
Behdad Esfahbod [Mon, 2 May 2011 18:58:04 +0000 (14:58 -0400)]
[test/unicode] Add script roundtrip tests for glib and ICU
Behdad Esfahbod [Mon, 2 May 2011 18:33:53 +0000 (14:33 -0400)]
[test/unicode] Better test chainup
Behdad Esfahbod [Mon, 2 May 2011 18:21:30 +0000 (14:21 -0400)]
[test/unicode] Port the _custom test to test all property setters
Behdad Esfahbod [Mon, 2 May 2011 18:03:55 +0000 (14:03 -0400)]
[test/unicode] Test Unicode 5.2+ but don't fail
Behdad Esfahbod [Mon, 2 May 2011 17:52:17 +0000 (13:52 -0400)]
[test/buffer] Clean up testing
Getting the hang of how to cleanly use gtest.
Behdad Esfahbod [Mon, 2 May 2011 16:38:54 +0000 (12:38 -0400)]
Minor
Behdad Esfahbod [Mon, 2 May 2011 16:37:45 +0000 (12:37 -0400)]
[icu] Make sure we return script UNKNOWN instead of INVALID
Behdad Esfahbod [Mon, 2 May 2011 16:35:14 +0000 (12:35 -0400)]
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.
Behdad Esfahbod [Mon, 2 May 2011 16:06:18 +0000 (12:06 -0400)]
[test/unicode] Add log messages
Use with --verbose to see what's failing
Behdad Esfahbod [Mon, 2 May 2011 00:04:01 +0000 (20:04 -0400)]
Minor
Behdad Esfahbod [Fri, 29 Apr 2011 20:49:57 +0000 (16:49 -0400)]
[test/unicode] Add testing of all unicode properties
ICU fails for now.
Behdad Esfahbod [Fri, 29 Apr 2011 16:17:09 +0000 (12:17 -0400)]
[test/unicode] Test is/make_immutable()
Behdad Esfahbod [Fri, 29 Apr 2011 16:00:38 +0000 (12:00 -0400)]
[test/unicode] Use text fixture instead of static variables
Behdad Esfahbod [Thu, 28 Apr 2011 23:44:45 +0000 (19:44 -0400)]
[test/buffer] Add UTF-16 tests
Behdad Esfahbod [Thu, 28 Apr 2011 23:37:51 +0000 (19:37 -0400)]
[test/buffer] Add more extensive UTF-8 test data from glib
Behdad Esfahbod [Thu, 28 Apr 2011 22:34:42 +0000 (18:34 -0400)]
[test/buffer] Add initial utf-8 tests
Behdad Esfahbod [Thu, 28 Apr 2011 21:10:44 +0000 (17:10 -0400)]
Add test suite infrastructure
Wraps around glib for convenience and ease of use.
Behdad Esfahbod [Thu, 28 Apr 2011 20:03:29 +0000 (16:03 -0400)]
[API Remove hb_font_funcs_copy()
Will be adding font_funcs subclassing instead.
Behdad Esfahbod [Thu, 28 Apr 2011 20:02:40 +0000 (16:02 -0400)]
[TODO] Remove finished items
Behdad Esfahbod [Thu, 28 Apr 2011 20:01:01 +0000 (16:01 -0400)]
Add _hb_unsigned_int_mul_overflows
Behdad Esfahbod [Thu, 28 Apr 2011 19:54:16 +0000 (15:54 -0400)]
Desable possibly lethal test on 64-bit machines
Behdad Esfahbod [Thu, 28 Apr 2011 18:24:16 +0000 (14:24 -0400)]
[test/buffer] Test pre_allocate() and allocation_successful()
Behdad Esfahbod [Thu, 28 Apr 2011 16:58:28 +0000 (12:58 -0400)]
Fix possible but improbable overflow in hb_array_t
Behdad Esfahbod [Thu, 28 Apr 2011 16:56:49 +0000 (12:56 -0400)]
[buffer] More error handling
Should be all set now.
Behdad Esfahbod [Thu, 28 Apr 2011 16:28:54 +0000 (12:28 -0400)]
[test/buffer] Add test pre_alloc(); hangs in the buffer code right now
Because the following loop overflows:
while (size > new_allocated)
new_allocated += (new_allocated >> 1) + 32;
Behdad Esfahbod [Thu, 28 Apr 2011 16:15:24 +0000 (12:15 -0400)]
[test/buffer] Test reset(), set_length(), and set/get_unicode_data()
Behdad Esfahbod [Thu, 28 Apr 2011 15:56:29 +0000 (11:56 -0400)]
[test/buffer] Test reverse() and reverse_clusters()
Behdad Esfahbod [Thu, 28 Apr 2011 01:46:01 +0000 (21:46 -0400)]
[API] Add _set/get_user_data() for all objects
Behdad Esfahbod [Thu, 28 Apr 2011 01:45:51 +0000 (21:45 -0400)]
Move code around
Behdad Esfahbod [Thu, 28 Apr 2011 01:22:32 +0000 (21:22 -0400)]
Add initial implementation of user_data to objects