Commit Graph

334 Commits

Author SHA1 Message Date
Behdad Esfahbod 926f512f35 [aat.feat] Rework API and implementation
Fixes https://github.com/harfbuzz/harfbuzz/pull/1346
2018-11-25 01:16:02 -05:00
Behdad Esfahbod e20f81f4fa [aat] Rename feat API a bit more 2018-11-25 01:16:02 -05:00
Ebrahim Byagowi 54f4c17f0a [feat] Rename API uses of setting to selector 2018-11-25 01:16:02 -05:00
Ebrahim Byagowi 9c64b216ec [feat] Apply renamings and add documentation 2018-11-25 01:16:02 -05:00
Nathan Willis 5fdf7b724e Usermanual: clusters chapter; add brief grapheme definition and clarify monotonous cluster handling. 2018-11-24 16:46:02 +02:00
Nathan Willis 939220e57d Usermanual: clusters chapter, minor updates. 2018-11-24 16:46:02 +02:00
Nathan Willis 53ac46e974 Usermanual: expand clusters chapter. 2018-11-24 16:46:02 +02:00
Behdad Esfahbod f48bb9a393 [var] Deprecated axis enumeration API and add new version
New version has axis flags.

New API:
+hb_ot_var_axis_info_t
+hb_ot_var_find_axis_info()
+hb_ot_var_get_axis_infos()

Deprecated API:
-HB_OT_VAR_NO_AXIS_INDEX
-hb_ot_var_axis_t
-hb_ot_var_find_axis()
-hb_ot_var_get_axes()
2018-11-20 20:46:14 -05:00
Behdad Esfahbod 587d49fc65 [fvar] Add named-instance API
Fixes https://github.com/harfbuzz/harfbuzz/issues/1241
2018-11-19 14:51:34 -05:00
Behdad Esfahbod 1a2eb108b8 [ot-var] Add hb_ot_var_axis_get_flags()
Part of https://github.com/harfbuzz/harfbuzz/issues/1241

New API:
+hb_ot_var_axis_flags_t
+hb_ot_var_axis_get_flags
2018-11-19 12:36:56 -05:00
Behdad Esfahbod 1019391046 2.1.0 2018-10-30 15:52:26 -07:00
Behdad Esfahbod a7aba99baa [name] Rename hb_name_id_t to hb_ot_name_id_t
https://github.com/harfbuzz/harfbuzz/pull/1254
2018-10-30 14:04:09 -07:00
Nathan Willis f236f79088 Docs Makefile: sync SGML list to harfbuzz-docs.xml include list. Hopefully fixes distcheck failure. 2018-10-30 19:14:57 +02:00
Nathan Willis 9f4b375e39 Usermanual: minor wording updates, build fixes. 2018-10-30 19:14:57 +02:00
Nathan Willis e110032b91 Usermanual: update DTD in chapter XML to avoid HTML entity parsing errors. 2018-10-30 19:14:57 +02:00
Nathan Willis 01400f7425 Usermanual; minor wording changes. 2018-10-30 19:14:57 +02:00
Khaled Hosny e89f43dc08 Minor; rewording unsafe-to-break note.
Co-Authored-By: n8willis <nwillis@glyphography.com>
2018-10-30 19:14:57 +02:00
Khaled Hosny ccdfb63438 Trivial; typo.
Co-Authored-By: n8willis <nwillis@glyphography.com>
2018-10-30 19:14:57 +02:00
Khaled Hosny 722099487b Minor; simplify example code
Co-Authored-By: n8willis <nwillis@glyphography.com>
2018-10-30 19:14:57 +02:00
Khaled Hosny 6e4dd58a4a Minor: simplify example code
Co-Authored-By: n8willis <nwillis@glyphography.com>
2018-10-30 19:14:57 +02:00
Khaled Hosny f9ee0decee Minor; drop 'OpenType' from sentence
Co-Authored-By: n8willis <nwillis@glyphography.com>
2018-10-30 19:14:57 +02:00
Nathan Willis f028da59d9 Minor. 2018-10-30 19:14:57 +02:00
Khaled Hosny ed5547f828 Use 'glyphs' instead of 'text'
Co-Authored-By: n8willis <nwillis@glyphography.com>
2018-10-30 19:14:57 +02:00
Nathan Willis 236285545b Docs: minor, update Makefile w new file name. 2018-10-30 19:14:57 +02:00
Nathan Willis 163ab81ab0 Docs: rename Hello HarfBuzz to Getting Started. 2018-10-30 19:14:57 +02:00
Nathan Willis 9e7efa3f47 Docs: usermanual, add API Overview to Hello HarfBuzz chapter. Start Terminology section. 2018-10-30 19:14:57 +02:00
Nathan Willis 3a27e8fb97 Docs: usermanual, add Shaping Concepts chapter. 2018-10-30 19:14:57 +02:00
Nathan Willis 9aa865dcc6 Docs: usermanual, minor cleanup to What Is HarfBuzz chapter. 2018-10-30 19:14:57 +02:00
Nathan Willis 443f872132 Docs: move harfbuzz-ng-vs-old discussion down below the TOC; put in note. 2018-10-30 19:14:57 +02:00
Nathan Willis 792af5d254 Docs: flesh out config options in Usermanual:Install chapter. 2018-10-30 19:14:57 +02:00
Nathan Willis 325e2745cf Docs: add basic config-options section to Usermanual Installation chapter. 2018-10-30 19:14:57 +02:00
Nathan Willis 97c1c46cd2 Docs: update and linearize build instructions; add installation overview material. 2018-10-30 19:14:57 +02:00
Nathan Willis 088755f9e6 Docs: update usermanual What Is HarfBuzz material. 2018-10-30 19:14:57 +02:00
Nathan Willis 0956ab4185 Docs: Move What-HarfBuzz-doesnt-do to Usermanual-what-is-HarfBuzz. 2018-10-30 19:14:57 +02:00
Nathan Willis fd270beedb Docs: Usermanual- What is HarfBuzz; add intro to shaping concepts. 2018-10-30 19:14:57 +02:00
Nathan Willis d9fd927210 Docs: update Usermanual-What Is HarfBuzz. 2018-10-30 19:14:57 +02:00
Ebrahim Byagowi 3d4c1f6a41 [ot-color] Apply Behdad reviews 2018-10-28 18:33:10 -07:00
Ebrahim Byagowi dbd419bede [ot-color] Add public API for CBDT/sbix/SVG color Emojis 2018-10-28 18:33:10 -07:00
Behdad Esfahbod 6ce49a921a [name] Change hb_name_id_t back to unsigned int
d941f66c75 (commitcomment-31076011)
2018-10-28 08:26:30 -07:00
Behdad Esfahbod 4740a3593d [docs] Divide reference API into three chapters 2018-10-27 05:08:52 -07:00
Behdad Esfahbod 1d40d72f29 [docs] Hook up hb-var 2018-10-27 05:01:01 -07:00
Behdad Esfahbod 46072b7cb5 [ot] Fold hb-ot-tag.h into hb-ot-layout.h 2018-10-27 04:47:41 -07:00
Behdad Esfahbod 00cf4e5eb6 [docs] Fill in some sections 2018-10-27 04:47:41 -07:00
Behdad Esfahbod 9457cfd7bc [docs] Hook up hb-map 2018-10-27 03:15:34 -07:00
Behdad Esfahbod d941f66c75 [name] Make hb_name_id_t be the enum
This is like hb_script_t.

We had this exposed as unsigned int since 2.0.0 release in two APIs,
as well as hb_ot_layout_get_size_params() from earlier.
But since no one uses those (right?!), let's just fix this now.
2018-10-27 03:06:14 -07:00
Behdad Esfahbod 3b7e5f1313 [name] Rename hb_ot_name_get_names() to hb_ot_name_list_names()
And swap return value positions, so can be annotated for gobject-introspectin.
2018-10-27 03:06:14 -07:00
Behdad Esfahbod e7400c0275 [docs] Hook up new symbols 2018-10-26 22:24:40 -07:00
Ebrahim Byagowi eceeb85666
[docs] Add hb-ot-color section 2018-10-26 00:23:45 +03:30
Behdad Esfahbod 2d9198f205 [docs] Fix for hb-version.h being in src tree 2018-10-20 16:50:39 -07:00
Ebrahim Byagowi dc49bd8d81 Add two APIs for getting stylistic set labels
* hb_ot_layout_feature_get_characters
* hb_ot_layout_feature_get_name_ids

However HarfBuzz currently doesn't expose an API for retrieving the actual
information associated with NameId from the `name` table and that should be
done separately.
2018-10-12 16:06:39 -04:00
David Corbett 7f1fbfe2e3 Add hb_ot_tags_to_script_and_language 2018-10-11 13:54:28 -04:00
David Corbett 2c7d4db7af Deprecate obsolete functions
`hb_ot_tags` replaces `hb_ot_tags_from_script` and
`hb_ot_tag_from_language`.

`hb_ot_layout_table_select_script` replaces
`hb_ot_layout_table_choose_script`.

`hb_ot_layout_script_select_language` replaces
`hb_ot_layout_script_find_language`.
2018-10-11 13:54:28 -04:00
David Corbett 91067716f5 Refactor the selection of script and language tags
The old hb-ot-tag.cc functions, `hb_ot_tags_from_script` and
`hb_ot_tag_from_language`, are now wrappers around a new function:
`hb_ot_tags`. It converts a script and a language to arrays of script
tags and language tags. This will make it easier to add new script tags
to scripts, like 'dev3'. It also allows for language fallback chains;
nothing produces more than one language yet though.

Where the old functions return the default tags 'DFLT' and 'dflt',
`hb_ot_tags` returns an empty array. The caller is responsible for
using the default tag in that case.

The new function also adds a new private use subtag syntax for script
overrides: "x-hbscabcd" requests a script tag of 'abcd'.

The old hb-ot-layout.cc functions,`hb_ot_layout_table_choose_script` and
`hb_ot_layout_script_find_language` are now wrappers around the new
functions `hb_ot_layout_table_select_script` and
`hb_ot_layout_script_select_language`. They are essentially the same as
the old ones plus a tag count parameter.

Closes #495.
2018-10-11 13:54:28 -04:00
Behdad Esfahbod b314c4e9ab [font] Add get_nominal_glyphs() callback (note the plural)
Unused as of now.  To be wired up to normalizer, which would remove
overhead and allow hb-ot-font initialization to become a no-op, so
we can enable it by default.
2018-10-09 09:43:44 -04:00
Behdad Esfahbod d219f899f4 Deprecate font kern API 2018-10-09 00:01:09 -04:00
Behdad Esfahbod 26d7305da7 Deprecate decompose_compatibility stuff 2018-10-08 22:31:35 -04:00
Behdad Esfahbod 42b51eee54 Deprecate eastasian_width stuff 2018-10-08 22:26:39 -04:00
Behdad Esfahbod e42cd58c99 Rename invisible_codepoint to invisible_glyph in API
Deleted recently added API:
    hb_buffer_set_invisible_codepoint()
    hb_buffer_get_invisible_codepoint()

    hb-shape / hb-view --invisible-codepoint

New API:
    hb_buffer_set_invisible_glyph()
    hb_buffer_get_invisible_glyph()

    hb-shape / hb-view --invisible-glyph

Fixes https://github.com/harfbuzz/harfbuzz/issues/1216
2018-10-07 20:47:30 -04:00
Behdad Esfahbod 71b65eb27d Add API for setting invisible-codepoint
Fixes https://github.com/harfbuzz/harfbuzz/issues/1216

New API:
hb_buffer_set_invisible_codepoint()
hb_buffer_get_invisible_codepoint()

hb-shape / hb-view --invisible-codepoint
2018-10-07 18:43:26 +02:00
Behdad Esfahbod becd84aa2f Add HB_FEATURE_GLOBAL_START/END
Fixes https://github.com/harfbuzz/harfbuzz/issues/1141

New API:
HB_FEATURE_GLOBAL_START
HB_FEATURE_GLOBAL_END
2018-09-11 01:27:25 +02:00
Behdad Esfahbod dae39c58fb [face] Introduce character-map API
New API:
+hb_face_collect_unicodes
+hb_face_collect_variation_selectors
+hb_face_collect_variation_unicodes
2018-08-25 22:44:39 -07:00
Behdad Esfahbod 82b12bcadd [unicode] Add HB_UNICODE_MAX
New API:
HB_UNICODE_MAX
2018-08-25 22:07:17 -07:00
Behdad Esfahbod aadb2a9188 Add face-builder
New API:
+hb_face_builder_create
+hb_face_builder_add_table
2018-08-25 08:18:53 -07:00
Behdad Esfahbod b0ff79acd8 Add +hb_font_get_glyph_advances_for_direction
New API:
+hb_font_get_glyph_advances_for_direction
2018-08-07 09:52:06 -07:00
Behdad Esfahbod 79e21984b1 Add batch advance width callback function
New API:
+hb_font_funcs_set_glyph_h_advances_func
+hb_font_funcs_set_glyph_v_advances_func
+hb_font_get_glyph_h_advances
+hb_font_get_glyph_h_advances_func_t
+hb_font_get_glyph_v_advances
+hb_font_get_glyph_v_advances_func_t
2018-08-06 09:45:17 -07:00
Ebrahim Byagowi 1a7fed6318
Revert "Add a new API, hb_ot_layout_get_feature_name_ids (#976)" (#1121)
This reverts commit 0c1b287b72.
2018-08-01 12:15:44 +04:30
Behdad Esfahbod d7a15799d4 [gobject] Hook up hb_map_t 2018-07-31 22:28:28 -07:00
Garret Rieger 7278d9df30 [subset] Add hb_ot_layout_collect_features to harfbuzz-sections.txt.
Add the fuzzer test case for feature collection timeout.
2018-07-31 18:26:09 -07:00
Ebrahim Byagowi 0c1b287b72
Add a new API, hb_ot_layout_get_feature_name_ids (#976)
This new API returns cvXX and ssXX related NameId, things like
featUiLabelNameId, featUiTooltipTextNameId, sampleTextNameId, ... of cvXX
and UINameId of ssXX, in a unified way.

However HarfBuzz currently doesn't expose an API for retrieving the actual
information associated with NameId from the `name` table and that should be
done separately.
2018-07-21 21:14:48 +04:30
Behdad Esfahbod f3e58ab8a9 [docs] Enlist misc new symbols 2018-06-12 19:33:08 -04:00
Ebrahim Byagowi 32da0c6bc4
Add hb_face_count, a new API (#1002)
Simply, it returns the number of faces on a font blob.

To be used on hb-sanitizer tool but other clients also
can benefit from it.
2018-06-05 18:56:26 +04:30
Ebrahim Byagowi ce17340b23 Add hb_blob_create_from_file, a new API (#926) 2018-04-20 07:59:06 +02:00
Behdad Esfahbod 694eaf6367 [set] Add backwards iterator
New API:
- hb_set_previous()
- hb_set_previous_range()
2018-02-14 01:00:10 -08:00
Behdad Esfahbod a989f3edec Add hb_blob_copy_writable_or_fail()
New API:
- hb_blob_copy_writable_or_fail()
2018-02-13 22:12:36 -08:00
Behdad Esfahbod b5f25844fb [docs] Minor update 2018-02-11 19:49:18 -06:00
Behdad Esfahbod 369dfab0f8 Minor 2018-01-12 11:37:01 +01:00
Behdad Esfahbod 44f0ee346f Fix docs 2018-01-12 11:27:51 +01:00
Bruce Mitchener 85ec6d3443 Fix typos. 2018-01-02 13:26:44 -05:00
Behdad Esfahbod d672bcf9d7 Minor 2017-11-28 22:20:57 -08:00
Behdad Esfahbod 23ade70783 [doc] Optimize HarfBuzz.png; add HarfBuzz.svg
SVG is unused. Just keeping it here.
2017-11-21 16:37:04 -08:00
Ebrahim Byagowi a13c0748c5 Move gh-pages docs to harfbuzz.github.io 2017-11-21 13:53:35 -08:00
Behdad Esfahbod a0ad0d5bb8 [docs] s/Harfbuzz/HarfBuzz/g 2017-11-20 15:07:48 -08:00
ebraminio 7c6937e7c7
Move all references of old url to the new address (#622) 2017-11-20 14:49:22 -05:00
ebraminio 1955cbecc9
Add a dummy CircleCI config to gh-pages branch (#602) 2017-11-02 04:55:46 -07:00
Behdad Esfahbod bfe0faf1a2 [docs] Deprecate hb_set_invert() 2017-10-22 15:54:50 -04:00
Behdad Esfahbod b98adefbb9 Update docs symbols 2017-10-17 12:00:34 -07:00
Behdad Esfahbod 25846cc39f 1.6.0 2017-10-13 16:30:33 +02:00
Behdad Esfahbod 4e4781319b [ft] Add hb_ft_font_changed()
When the font size or variations settings on underlying FT_Face change,
one can call hb_ft_font_changed() and continue using hb_font created using
hb_ft_font_create().

Fixes https://github.com/behdad/harfbuzz/issues/559

New API:
hb_ft_font_changed()
2017-10-12 10:33:16 +02:00
Behdad Esfahbod b57f18da70 Add hb_font_[sg]et_ptem() to set/get point size on font
New API:
hb_font_set_ptem()
hb_font_get_ptem()

Needed for hb-coretext optical sizing:
https://github.com/behdad/harfbuzz/issues/360
2017-10-11 11:47:47 +02:00
Behdad Esfahbod 224d20e4e1 [docs] Minor 2017-08-23 14:49:10 -07:00
Behdad Esfahbod d6bdbbca30 [var] Remove HB_OT_TAG_fvar/avar
We're not going to define public macros for tags for tables.
There's little use to those and they are implementation detail.
2017-01-22 20:16:51 -08:00
Behdad Esfahbod 7a860f656e [var] Add macros for standard axes 2017-01-22 19:52:09 -08:00
Behdad Esfahbod 5ec96d30ca [var] Adjust API in prep for 'avar' implementation
The 'avar' table does not allow random access to axis maps,
so change API to avoid quadratic-time implementation.

Removed -hb_ot_var_normalize_axis_value(), added
+hb_ot_var_normalize_variations() and
+hb_ot_var_normalize_coords() instead.
2017-01-22 18:52:00 -08:00
Behdad Esfahbod d2f249e745 Stub out doc comments for new symbols 2017-01-22 17:42:33 -08:00
Behdad Esfahbod d1c62370a0 Aim math API for 1.3.3 instead of 1.4.0 2016-10-04 14:47:12 -07:00
Behdad Esfahbod 46cc4a3a2a [MATH] Rename hb_math_*_t types to hb_ot_math_*_t
With this, I believe MATH table API is not ready to be merged.
2016-09-27 16:44:22 +02:00
Behdad Esfahbod db5ebcf10f Update docs 2016-09-27 16:42:25 +02:00
n8willis 498574e6c1 Update Makefile.am 2016-01-28 12:21:32 -06:00
n8willis e12fc66699 Added initial usermanual chapter on cluster levels. 2016-01-28 12:14:12 -06:00
Khaled Hosny 9ab9f974d4 [docs] More buffers documentation 2016-01-01 20:38:21 +04:00
Khaled Hosny 85c2443b73 [docs] Reduce gtkdoc-check errors
Now it is just reporting one error about “503 undocumented or incomplete
symbols”, that will be the easy part I guess.
2015-12-30 22:57:04 +04:00
Khaled Hosny fb192c263e [docs] A bit more buffers documentation 2015-12-30 17:59:01 +04:00
Khaled Hosny 8ab797c5b8 [docs] A bit more buffers documentation 2015-12-30 17:59:01 +04:00
Khaled Hosny f18d2226b6 [docs] Some documentation on buffers
Some of it (create, reference, destroy) are adapted from Cairo docs.
2015-12-30 17:59:01 +04:00
Khaled Hosny 1f5559293f [docs] Ignore the new HB_EXTERN decoration
Otherwise, almost all API functions are not extracted.
2015-12-29 02:31:39 +04:00
Khaled Hosny d25317f67f Move more docs from FreeDesktop page 2015-12-24 01:52:17 +04:00
Khaled Hosny 493a922208 Rename user manual files
Use chapter ids instead of numbers, so that we can reorder them,
introduce new ones etc. without the numbers becoming out of date.
2015-12-24 01:52:17 +04:00
Khaled Hosny 4dc2265918 Intro from freedesktop.org/wiki/Software/HarfBuzz/ 2015-12-24 01:52:17 +04:00
Behdad Esfahbod 5783e05f81 [docs] Move docs/reference/ contents into docs/ 2015-08-31 19:18:10 +01:00
Behdad Esfahbod cd5e3a13a6 [docs] Fix out-of-tree build 2015-08-31 19:16:41 +01:00
Behdad Esfahbod 3899795fa3 Merge pull request #131 from simoncozens/docs
Use gtk-doc to build user's manual as well as reference
2015-08-31 10:46:01 +01:00
Simon Cozens 01e16e88f5 Combine user / reference information into gtk-doc generated manual. 2015-08-31 10:40:17 +01:00
Simon Cozens 11a07c4729 Correct tag hierarchy, to allow for table-of-contents entries. 2015-08-31 10:39:10 +01:00
Simon Cozens 387d6af428 Missing tag (oops). 2015-08-31 10:31:09 +01:00
Behdad Esfahbod d205965286 [docs] Fix typo 2015-08-31 10:12:05 +01:00
Simon Cozens 5470e744dd Current state and skeleton outline 2015-08-29 08:21:18 +01:00
Simon Cozens f0807654da First two chapters. More to follow. 2015-08-25 19:57:15 +01:00
Behdad Esfahbod 5ec5875acb Install git.mk in docs/ 2015-02-26 13:59:13 -08:00
Behdad Esfahbod 2b051c6057 Rename HB_VERSION_CHECK and hb_version_check to "atleast"
HB_VERSION_CHECK's comparison was originally written wrongly
by mistake.  When API tests were written, they were also written
wrongly to pass given the wrong implementation... Sigh.

Given the purpose of this API, there's no point in fixing it
without renaming it.  As such, rename.

API changes:

  HB_VERSION_CHECK -> HB_VERSION_ATLEAST
  hb_version_check -> hb_version_atleast
2014-06-20 14:09:57 -04:00
Behdad Esfahbod cabfa538ed Adjust unused doc symbols 2014-06-20 14:02:30 -04:00
Behdad Esfahbod b934b0f9d1 Yet another try to make build without gtk-doc succeed 2014-03-19 11:52:40 -07:00
Behdad Esfahbod a7a5be090d Another try to make gtk-doc optional 2014-03-19 11:39:23 -07:00
Luis de Bethencourt d507f6b5b7 Have Gtk-Doc ignore UCDN files 2013-12-16 17:04:44 -05:00
Behdad Esfahbod ae9dc717d3 [gtk-doc] Pass source files to gtk-doc 2013-09-05 16:40:37 -04:00
Behdad Esfahbod 63dd4b0ac2 [gtk-doc] Remove hack for deleting tmpl/
This was introduced in 029f46bde7
and was in fact a bug in gtk-doc master:

  https://bugzilla.gnome.org/show_bug.cgi?id=707426
2013-09-03 20:01:40 -04:00
Behdad Esfahbod a2a28235e8 [gtk-doc] Generate version.xml from configure
Even though this is not what autoconf recommends, it reduces doc
rebuilds when version doesn't change but configure changes.
2013-08-30 19:38:47 -04:00
Behdad Esfahbod e4ce6745e1 [gtk-doc] Fix build without gobject 2013-08-29 15:56:56 -04:00
Behdad Esfahbod 71439a8c7a [gobject] Flesh out hb-gobject
Move it to new harfbuzz-gobject library.  Implement enums and
boxed types for object-types.  Still have to do boxed types for
value types.
2013-08-28 12:38:37 -04:00
Behdad Esfahbod 2e3a07abdf Separate face source code from font
Makes documentation / introspection easier.
2013-08-27 11:46:08 -04:00
Behdad Esfahbod 381f2fb5e6 Minor 2013-08-27 11:46:07 -04:00
Behdad Esfahbod ac1f09b53e [gtk-doc] Fix maintainer-clean rule 2013-08-27 11:46:07 -04:00
Behdad Esfahbod 029f46bde7 [gtk-doc] Remove tmpl in make maintainer-clean 2013-08-26 18:11:07 -04:00
Behdad Esfahbod 700a15fe4b Add HB_DISABLE_DEPRECATED
That moment that you have to accept that you made API mistakes...
2013-08-26 17:49:36 -04:00
Anthony Carrico f7c72b42ef [gtk-doc] Initial setup
Initial setup of gtk-doc. Straight forward setup following the gtk-doc
instructions. Ignore some troublesome types in src/hb-gobject.h. To
build use "./autogen.sh --enable-gtk-doc" then "make". Docs are in
harfbuzz/docs/reference/html/index.html.
2013-08-26 17:32:30 -04:00