src/hb-buffer.cc


Log

Author Commit Date CI Message
Behdad Esfahbod 8e3715f8 2012-04-23T22:18:54 Minor
Behdad Esfahbod 3b26f96e 2012-04-10T10:52:07 Add Thai shaper that does SARA AM decomposition / reordering That's not in the OpenType spec, but it's what MS and Adobe do.
Behdad Esfahbod d4cc4471 2012-04-07T21:52:28 Move code around, in prep for Thai/Lao shaper
Behdad Esfahbod c521e793 2012-01-18T21:51:05 Fix OOB in replace_glyph() Patch from Kenichi Ishibashi.
Behdad Esfahbod 9ebe8c02 2011-08-26T09:29:42 Add buffer->replace_glyphs()
Behdad Esfahbod e6c09cdf 2011-08-17T19:07:59 Remove the pre_allocate argument from hb_buffer_create() For two reasons: 1. User can always call hb_buffer_pre_allocate() themselves, and 2. Now we do a pre_alloc in add_utfX anyway, so the total number of reallocs is limited to a small number (~3) anyway. This just makes the API cleaner.
Behdad Esfahbod 4e9ff1dd 2011-08-15T16:21:22 Pre-allocate buffers when adding string We do a conservative estimate of the number of characters, but still, this limits the number of buffer reallocs to a small constant.
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 944b2ba1 2011-08-09T00:23:58 [buffer] Make API take signed int length Since we already switched to accepting -1 as 'zero-terminated'.
Behdad Esfahbod 144cd49a 2011-08-07T00:51:50 [buffer] Accept -1 for text_length and item_length A -1 text_length means: zero-terminated string. A -1 item_length means: to the end of string.
Behdad Esfahbod 02aeca98 2011-08-04T22:31:05 [API] Changes to main shape API hb_shape() now accepts a shaper_options and a shaper_list argument. Both can be set to NULL to emulate previous API. And in most situations they are expected to be set to NULL. hb_shape() also returns a boolean for now. If shaper_list is NULL, the return value can be ignored. shaper_options is ignored for now, but otherwise it should be a NULL-terminated list of strings. shaper_list is a NULL-terminated list of strings. Currently recognized strings are "ot" for native OpenType Layout implementation, "uniscribe" for the Uniscribe backend, and "fallback" for the non-complex backend (that will be implemented shortly). The fallback backend never fails. The env var HB_SHAPER_LIST is also parsed and honored. It's a colon-separated list of shaper names. The fallback shaper is invoked if none of the env-listed shapers succeed. New API hb_buffer_guess_properties() added.
Behdad Esfahbod c605bbbb 2011-08-04T20:00:53 Remove C++ guards from source files Where causing issues for people with MSVC.
Behdad Esfahbod e62df436 2011-08-03T17:38:54 Add internal hb_buffer_t::get_scratch_buffer()
Behdad Esfahbod b65c0602 2011-07-28T16:48:43 Formalize buffer var allocations
Behdad Esfahbod a9ad3d34 2011-07-28T15:42:18 Move more code around Buffer var allocation coming into shape
Behdad Esfahbod 3a81b1db 2011-07-25T16:30:32 Minor, fix leak from my previous refactorings
Behdad Esfahbod f4a579bc 2011-07-25T16:20:16 Add internal API for buffer var allocation
Behdad Esfahbod 468e9cb2 2011-07-22T11:28:07 Move buffer methods into the object
Behdad Esfahbod 9111b21e 2011-07-21T00:58:29 Add _hb_buffer_output_glyph() and _hb_buffer_skip_glyph()
Behdad Esfahbod dd89d958 2011-07-21T00:28:57 Fix cluster calculation for non-LTR text
Behdad Esfahbod 2e18c6db 2011-07-06T16:05:45 Fix reverse_range() position loop Mozilla Bug 669175 - Slow rendering of text sometimes in this case, using direction: rtl
Behdad Esfahbod 80a6833b 2011-05-11T18:14:44 [API] Add hb_*_get_empty() for all objects
Behdad Esfahbod 3935af1c 2011-05-05T16:09:45 [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 e87867cb 2011-05-02T19:35:05 [buffer] Fail in _create() if we cannot pre-allocate the requested size
Behdad Esfahbod 243673d6 2011-04-28T19:37:51 [test/buffer] Add more extensive UTF-8 test data from glib
Behdad Esfahbod 080a0eb7 2011-04-28T16:01:01 Add _hb_unsigned_int_mul_overflows
Behdad Esfahbod 32640428 2011-04-28T14:24:16 [test/buffer] Test pre_allocate() and allocation_successful()
Behdad Esfahbod e0db4b86 2011-04-28T12:56:49 [buffer] More error handling Should be all set now.
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 65e0063e 2011-04-27T09:33:58 Make buffer size growth start from 32 instead of 8
Behdad Esfahbod d4bee9f8 2011-04-27T09:24:37 [API] Add hb_unicode_funcs_get_default()
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 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 f85faee9 2011-04-19T00:38:01 [API] Rename hb_buffer_add_glyph() to hb_buffer_add()
Behdad Esfahbod aab0de50 2011-04-19T00:32:19 [API] Add hb_buffer_allocation_successful() Returns the error status of the buffer.
Ryan Lortie 02a534b2 2011-04-15T18:34:45 [API] Rename hb_buffer_ensure() to hb_buffer_pre_allocate() The new name is self-documenting.
Ryan Lortie 70566bef 2011-04-15T18:32:36 [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.
Behdad Esfahbod c0af193c 2011-04-15T19:26:24 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).
Behdad Esfahbod 8f0d7e0c 2011-04-15T18:59:56 Remove hb_buffer_clear_positions(), add hb_ot_layout_position_start()
Behdad Esfahbod 2fc56edf 2011-04-15T18:35:08 [API] Remove hb_buffer_clear() One should use hb_buffer_reset() really.
Behdad Esfahbod c910bec8 2011-04-13T15:49:06 Add hb_buffer_reset() and hb_buffer_set_length()
Behdad Esfahbod 69ea23cb 2011-04-13T15:02:40 Minor
Behdad Esfahbod b5dd44e2 2011-02-28T10:13:52 Fix possible overflow
Behdad Esfahbod cc1a8a93 2011-01-06T14:58:52 Fix ChanContext backtrack matching with GPOS Reported on mailing list by Keith Stribley and Khaled Hosny.
Behdad Esfahbod 1c318302 2011-01-06T14:44:14 Remove unused realloc We always allocate and grow str and pos together.
Behdad Esfahbod 98370e89 2010-10-27T17:39:01 WIP removing external synthesized GDEF support and implementing it internally
Behdad Esfahbod 870e2d6e 2010-10-27T17:37:20 Remove unused function
Behdad Esfahbod dbf56b1d 2010-10-27T17:06:12 More lig-id cleanup
Behdad Esfahbod f6a23a0b 2010-10-27T17:01:03 More removal of lig-id code from buffer
Behdad Esfahbod dd2ffd28 2010-10-27T16:57:01 Minor renaming
Behdad Esfahbod fe263272 2010-10-27T16:51:02 Move setting lig_id/component out of buffer and to the gsub code
Behdad Esfahbod 37ab8771 2010-10-27T15:38:06 Remove comment
Behdad Esfahbod 88474c6f 2010-10-27T14:42:15 Get rid of the OpenType-specific internal buffer representation Add variant integers to buffer item types. More cleanup coming.
Behdad Esfahbod bd7378b2 2010-10-13T18:33:16 Massage mask setting a bit more Still finding the exact correct way the masks should be set.
Behdad Esfahbod 961f9baa 2010-10-13T17:17:00 Oops, actually set global mask
Behdad Esfahbod 3506b2e7 2010-10-13T15:38:52 Return early if mask is 0
Behdad Esfahbod 5c1c8c9c 2010-10-13T15:36:38 Make sure feature values don't leak out of their mask
Behdad Esfahbod 57ac0ecb 2010-10-12T17:07:02 Merge clearing masks and setting global masks
Behdad Esfahbod 34db6f03 2010-10-07T01:21:19 Add XXX note
Behdad Esfahbod 4e4ef24e 2010-07-23T17:22:11 Towards separating bit allocation from shaping
Behdad Esfahbod acdba3f9 2010-07-23T15:11:18 Prefer C linkage
Behdad Esfahbod 81c5e872 2010-05-28T18:31:16 Allow disabling default features Patch from Jonathan Kew
Behdad Esfahbod 2163afbf 2010-05-27T14:04:15 Add note about UTF-8 decoder
Behdad Esfahbod 1ce7b87c 2010-05-21T17:31:45 Cleanup bitmask allocation
Behdad Esfahbod 009aad56 2010-05-20T14:00:57 Invert the mask logic Before, the mask in the buffer was inverted. That is, a 0 bit meant feature should be applied and 1 meant not applied, whereas in the lookups, the logic was positive. Now both are in sync. When calling hb_buffer_add_glyph() manually, the mask should be 1 instead of 0.
Behdad Esfahbod 3567b87c 2010-05-14T23:28:44 Add an inline version of hb_buffer_ensure()
Behdad Esfahbod a6a79df5 2010-05-14T23:20:16 Handle malloc failture in the buffer
Behdad Esfahbod 910a33fe 2010-05-14T22:13:38 Update buffer docs
Behdad Esfahbod 36b73c80 2010-05-14T22:10:39 Shortening buffer accessors: rename buffer->in_pos to buffer->i
Behdad Esfahbod 29427c5c 2010-05-14T22:08:22 Shortening buffer accessors: rename buffer->out_length to buffer->out_len
Behdad Esfahbod 6960350b 2010-05-14T22:07:46 Shortening buffer accessors: rename buffer->in_length to buffer->len
Behdad Esfahbod 1b621823 2010-05-14T22:05:53 Shortening buffer accessors: rename buffer->positions to buffer->pos
Behdad Esfahbod 9d5e26df 2010-05-14T22:03:11 Shortening buffer accessors: rename buffer->out_string to buffer->out_info
Behdad Esfahbod 7e7007a1 2010-05-14T22:02:37 Shortening buffer accessors: rename buffer->in_string to buffer->info
Behdad Esfahbod 8e6b6bb2 2010-05-14T21:58:22 Merge buffer->out_pos and buffer->out_length
Behdad Esfahbod 1d5e7801 2010-05-12T23:43:00 Add a few other buffer methods
Behdad Esfahbod 8951fc2c 2010-05-12T23:13:39 Add buffer->allocate_lig_id()
Behdad Esfahbod 22da7fd9 2010-05-12T18:23:21 Rename a few files to be C++ sources In anticipation for buffer revamp coming.