Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,11 @@ jobs:
- name: Rustfmt
run: cargo fmt --all -- --check

- name: AAT C++ source compatibility
run: |
c++ -std=c++11 -pedantic-errors -Wall -Wextra -Werror \
-Iharfrust_capi/include -fsyntax-only harfrust_capi/tests/aat_source_compat.cc

- name: Clippy
run: cargo clippy --all-features --all-targets -- -D warnings

Expand All @@ -56,4 +61,3 @@ jobs:

- name: cargo build harfrust
run: cargo build -p harfrust --target thumbv7em-none-eabihf --no-default-features --features=libm

9 changes: 6 additions & 3 deletions harfrust_capi/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,10 @@ Variation-axis metadata is exposed by `hr_ot_var_get_axis_count/infos`;
`hr_ot_name_get_utf16` retrieves localized names with HarfBuzz's encoding
preferences, platform language IDs, and UTF-16 buffer sizing. Unicode-platform
names can use Apple's `ltag` table; Mac Roman names follow HarfBuzz's ASCII
interpretation. The complete HarfBuzz set and map APIs are available
interpretation. AAT feat-table metadata is exposed by
`hr_aat_layout_get_feature_types` and
`hr_aat_layout_feature_type_get_selector_infos`, including exclusive defaults
and non-exclusive enable/disable pairs. The complete HarfBuzz set and map APIs are available
as `hr_set_*` and `hr_map_*`, including inverted sets, ranges, set algebra, and
iteration. OpenType script and language tags can be converted with
`hr_ot_tag_to_language` and `hr_ot_tags_from_script_and_language`.
Expand Down Expand Up @@ -236,8 +239,8 @@ callback supplies scalar queries when no scalar callback is installed; a local
scalar callback also takes precedence over an inherited batch callback.

HarfBuzz compatibility headers are `hr-hb.h` for core APIs and `hr-hb-ot.h`
for OpenType APIs. The core header also includes the OpenType mappings for
existing callers. Both may be included in either order.
for OpenType APIs, and `hr-hb-aat.h` for AAT feature metadata. The core header also includes the OpenType mappings for
existing callers. The compatibility headers may be included in either order.

`HB_VERSION_*` and `hb_version*` report the HarfBuzz shaping release matched
by HarfRust, currently 14.5.1. `HR_VERSION_*` and `hr_version*` continue to
Expand Down
309 changes: 309 additions & 0 deletions harfrust_capi/include/hr-hb-aat.h

Large diffs are not rendered by default.

3 changes: 2 additions & 1 deletion harfrust_capi/include/hr-hb.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
* macros below would rewrite HarfBuzz's own declarations. Include one or the
* other.
*
* Shaping, BASE baseline, MATH, CPAL palettes, axis/name metadata, layout lookup, set, map, and OpenType tag
* Shaping, BASE baseline, MATH, CPAL palettes, axis/name and AAT metadata, layout lookup, set, map, and OpenType tag
* conversion APIs are covered.
* Anything else HarfBuzz offers -- drawing and painting callbacks,
* subsetting, other layout table introspection, custom Unicode
Expand Down Expand Up @@ -584,5 +584,6 @@

/* Kept for existing consumers of the combined compatibility header. */
#include "hr-hb-ot.h"
#include "hr-hb-aat.h"

#endif /* HARFRUST_HB_H */
Loading
Loading