Commit Graph

1294 Commits

Author SHA1 Message Date
Behdad Esfahbod 153142dac8 Replace simple macros with inline functions for better type safety
Now that we use C++ for all source code, lets benefit from it!

The hb_be_int16/32_get/put/eq() macros grow code size if replaced with
inline functions, so leave them as is.
2011-04-27 02:07:46 -04:00
Behdad Esfahbod 40a9b8154f Add TODO item 2011-04-27 01:48:56 -04:00
Behdad Esfahbod ebdc83467c Don't return in void function
Would have been nice if gcc had warned...
2011-04-27 01:41:24 -04:00
Behdad Esfahbod ec6f9c2fd0 Further simplify object handling 2011-04-21 18:35:58 -04:00
Behdad Esfahbod fca368c468 Add hb_object_header_t which is the common part of all objects
Makes way for adding arbitrary user_data support.
2011-04-21 18:24:02 -04:00
Behdad Esfahbod a9f24c8029 Move hb_reference_count_t to hb-private.h 2011-04-21 17:18:22 -04:00
Behdad Esfahbod 2409d5f8d7 Update Copyright headers 2011-04-21 17:14:28 -04:00
Behdad Esfahbod 08da7a3841 [hb-view] Accept numbers in feature tag name
Reported by Adam Twardoch.
2011-04-21 16:59:10 -04:00
Behdad Esfahbod 24229eb132 Remove obsolete comment
Talking to Ryan Lortie, he thinks my comment doesn't make sense.

So I'm making the getter const.  Note that g_atomic_int_get()
casts that away itself, so we don't need to worry about that
(which kinda makes me uncomfortable actually).
2011-04-21 16:55:17 -04:00
Behdad Esfahbod dcb7026f33 Add ASSERT_STATIC_EXPR macro
Unused right now.
2011-04-21 16:34:22 -04:00
Behdad Esfahbod 3e8bdbf941 Cleanup hb_refrence_count_t 2011-04-21 16:16:21 -04:00
Behdad Esfahbod 783a7d6969 [TODO] Remove finished items 2011-04-21 16:03:59 -04:00
Behdad Esfahbod da97541988 [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 :-).
2011-04-21 15:15:02 -04:00
Behdad Esfahbod 4d559cddbb [icu] Remove big script switch(), rely on reverse-lookup 2011-04-21 14:58:23 -04:00
Behdad Esfahbod d18431b4cd Move hb_reference_count_t from macros to inline methods 2011-04-20 18:59:10 -04:00
Behdad Esfahbod c57d454acc 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.
2011-04-20 18:50:27 -04:00
Behdad Esfahbod f19f4f9b09 Rename hb-blob.c to hb-blob.cc in preparation of more changes 2011-04-20 18:25:56 -04:00
Behdad Esfahbod 04744e73ba [TODO] Remove done items 2011-04-20 17:24:03 -04:00
Behdad Esfahbod 9417c1c0d2 [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.
2011-04-20 17:21:23 -04:00
Behdad Esfahbod c035812feb [API] Rename hb_face_get_table() to hb_face_reference_table()
That correctly reflects the reference ownership transfer happening.
2011-04-20 17:03:00 -04:00
Behdad Esfahbod 2d7b61a4b0 [TODO] Remove done items 2011-04-20 16:40:56 -04:00
Behdad Esfahbod af02933739 [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!
2011-04-20 15:49:31 -04:00
Behdad Esfahbod 440a76b630 [OT] Fix script to ot-script-tag conversion 2011-04-20 14:20:00 -04:00
Behdad Esfahbod a3036a3e97 Minor 2011-04-20 14:13:23 -04:00
Behdad Esfahbod fb6291d9c9 [test] Add test for headers included from C and C++ 2011-04-20 03:15:31 -04:00
Behdad Esfahbod 107a50581c [test] Add todo items 2011-04-20 03:04:56 -04:00
Behdad Esfahbod 5668189c12 [API] font: move user_data before destroy()
This is the common convention for language binding tools.
2011-04-20 03:03:32 -04:00
Behdad Esfahbod e5847f75fb [API] blob: move user_data before destroy()
This is the common convention for language binding tools.
2011-04-20 02:59:28 -04:00
Behdad Esfahbod 1fd73b594d [test] Rename test-types to test-common 2011-04-20 02:56:39 -04:00
Behdad Esfahbod f144a8ea84 [icu] Add two-way script conversion functions
Also optimizes the common-direction script lookup.
2011-04-20 02:54:42 -04:00
Behdad Esfahbod 0809aadd4b [glib] Add two-way script conversion functions
Also optimizes the common-direction script lookup to be an array lookup.
2011-04-20 02:44:29 -04:00
Behdad Esfahbod 5c8c1b680c Remove verbose comments 2011-04-20 02:29:22 -04:00
Behdad Esfahbod fb194b8794 unicode: Cleanup implementation 2011-04-20 02:27:39 -04:00
Behdad Esfahbod ecfb773829 Cosmetic 2011-04-20 01:34:51 -04:00
Ryan Lortie 2fd0c577e3 [API] unicode: rework virtual functions for subclassing
Unicode data providers can now be subclassed, including support for
chain-up.  The interface should now be nicely bindable, as well.

Also fix glib unicode funcs that where broken after hb_script_t
changes.  Nicely caught by the test-unicode.c added in this commit.
2011-04-20 00:19:20 -04:00
Behdad Esfahbod f85faee9b3 [API] Rename hb_buffer_add_glyph() to hb_buffer_add() 2011-04-19 00:38:01 -04:00
Behdad Esfahbod aab0de50e2 [API] Add hb_buffer_allocation_successful()
Returns the error status of the buffer.
2011-04-19 00:32:19 -04:00
Ryan Lortie 02a534b23f [API] Rename hb_buffer_ensure() to hb_buffer_pre_allocate()
The new name is self-documenting.
2011-04-19 00:05:43 -04:00
Ryan Lortie 70566befc5 [API} hb_buffer_get_glyph_{infos,positions}: Add length out parameter
Return the length, whenever we return an array.  Makes it easier on the
language bindings.
2011-04-19 00:03:44 -04:00
Behdad Esfahbod 62879eebd9 [API] Use ISO 15924 tags for hb_script_t
This simplifies the code, reduces static data, and makes the design
more extensible to future additions of new scripts.
2011-04-18 23:40:21 -04:00
Behdad Esfahbod c0af193c8e Change buffer default properties to invalid
This includes HB_DIRECTION_INVALID and HB_SCRIPT_INVALID.

The INVALID will cause a "guess whatever from the text" in hb_shape().
While it's not ideal, it works better than the previous defaults at
least (HB_DIRECTION_LTR and HB_SCRIPT_COMMON).
2011-04-15 19:26:24 -04:00
Behdad Esfahbod 00bec2c969 Move enum types to hb-common.h 2011-04-15 19:16:54 -04:00
Behdad Esfahbod 5dd4609f4d [TODO] Add new item 2011-04-15 19:16:34 -04:00
Behdad Esfahbod b54cd07b26 Mark internal buffer variables private 2011-04-15 19:12:01 -04:00
Behdad Esfahbod 0e8d35c093 Add hb_script_from_string() 2011-04-15 19:08:43 -04:00
Behdad Esfahbod 8f0d7e0c3f Remove hb_buffer_clear_positions(), add hb_ot_layout_position_start() 2011-04-15 19:08:43 -04:00
Behdad Esfahbod 2fc56edff6 [API] Remove hb_buffer_clear()
One should use hb_buffer_reset() really.
2011-04-15 19:08:38 -04:00
Behdad Esfahbod 7f5bdc8054 [TODO] Remove done items 2011-04-15 18:34:55 -04:00
Behdad Esfahbod 5814dfa3f5 Cosmetic 2011-04-15 14:41:04 -04:00
Behdad Esfahbod cfbfeb88a6 [TODO] Remove done items 2011-04-15 12:40:40 -04:00