aboutsummaryrefslogtreecommitdiffstats
path: root/components/gfx/text
diff options
context:
space:
mode:
Diffstat (limited to 'components/gfx/text')
-rw-r--r--components/gfx/text/shaping/harfbuzz.rs54
-rw-r--r--components/gfx/text/shaping/mod.rs2
2 files changed, 29 insertions, 27 deletions
diff --git a/components/gfx/text/shaping/harfbuzz.rs b/components/gfx/text/shaping/harfbuzz.rs
index 675c57b4615..ecd575d9b91 100644
--- a/components/gfx/text/shaping/harfbuzz.rs
+++ b/components/gfx/text/shaping/harfbuzz.rs
@@ -6,37 +6,39 @@
use app_units::Au;
use crate::font::{Font, FontTableMethods, FontTableTag, ShapingFlags, ShapingOptions, KERN};
-use crate::harfbuzz::hb_blob_t;
-use crate::harfbuzz::hb_bool_t;
-use crate::harfbuzz::hb_buffer_add_utf8;
-use crate::harfbuzz::hb_buffer_destroy;
-use crate::harfbuzz::hb_buffer_get_glyph_positions;
-use crate::harfbuzz::hb_buffer_get_length;
-use crate::harfbuzz::hb_face_destroy;
-use crate::harfbuzz::hb_feature_t;
-use crate::harfbuzz::hb_font_create;
-use crate::harfbuzz::hb_font_funcs_create;
-use crate::harfbuzz::hb_font_funcs_set_glyph_h_advance_func;
-use crate::harfbuzz::hb_font_funcs_set_glyph_h_kerning_func;
-use crate::harfbuzz::hb_font_funcs_set_nominal_glyph_func;
-use crate::harfbuzz::hb_font_set_funcs;
-use crate::harfbuzz::hb_font_set_ppem;
-use crate::harfbuzz::hb_font_set_scale;
-use crate::harfbuzz::hb_glyph_info_t;
-use crate::harfbuzz::hb_glyph_position_t;
-use crate::harfbuzz::{hb_blob_create, hb_face_create_for_tables};
-use crate::harfbuzz::{hb_buffer_create, hb_font_destroy};
-use crate::harfbuzz::{hb_buffer_get_glyph_infos, hb_shape};
-use crate::harfbuzz::{hb_buffer_set_direction, hb_buffer_set_script};
-use crate::harfbuzz::{hb_buffer_t, hb_codepoint_t, hb_font_funcs_t};
-use crate::harfbuzz::{hb_face_t, hb_font_t};
-use crate::harfbuzz::{hb_position_t, hb_tag_t};
-use crate::harfbuzz::{HB_DIRECTION_LTR, HB_DIRECTION_RTL, HB_MEMORY_MODE_READONLY};
use crate::platform::font::FontTable;
use crate::text::glyph::{ByteIndex, GlyphData, GlyphId, GlyphStore};
use crate::text::shaping::ShaperMethods;
use crate::text::util::{fixed_to_float, float_to_fixed, is_bidi_control};
use euclid::Point2D;
+// Eventually we would like the shaper to be pluggable, as many operating systems have their own
+// shapers. For now, however, HarfBuzz is a hard dependency.
+use harfbuzz_sys::hb_blob_t;
+use harfbuzz_sys::hb_bool_t;
+use harfbuzz_sys::hb_buffer_add_utf8;
+use harfbuzz_sys::hb_buffer_destroy;
+use harfbuzz_sys::hb_buffer_get_glyph_positions;
+use harfbuzz_sys::hb_buffer_get_length;
+use harfbuzz_sys::hb_face_destroy;
+use harfbuzz_sys::hb_feature_t;
+use harfbuzz_sys::hb_font_create;
+use harfbuzz_sys::hb_font_funcs_create;
+use harfbuzz_sys::hb_font_funcs_set_glyph_h_advance_func;
+use harfbuzz_sys::hb_font_funcs_set_glyph_h_kerning_func;
+use harfbuzz_sys::hb_font_funcs_set_nominal_glyph_func;
+use harfbuzz_sys::hb_font_set_funcs;
+use harfbuzz_sys::hb_font_set_ppem;
+use harfbuzz_sys::hb_font_set_scale;
+use harfbuzz_sys::hb_glyph_info_t;
+use harfbuzz_sys::hb_glyph_position_t;
+use harfbuzz_sys::{hb_blob_create, hb_face_create_for_tables};
+use harfbuzz_sys::{hb_buffer_create, hb_font_destroy};
+use harfbuzz_sys::{hb_buffer_get_glyph_infos, hb_shape};
+use harfbuzz_sys::{hb_buffer_set_direction, hb_buffer_set_script};
+use harfbuzz_sys::{hb_buffer_t, hb_codepoint_t, hb_font_funcs_t};
+use harfbuzz_sys::{hb_face_t, hb_font_t};
+use harfbuzz_sys::{hb_position_t, hb_tag_t};
+use harfbuzz_sys::{HB_DIRECTION_LTR, HB_DIRECTION_RTL, HB_MEMORY_MODE_READONLY};
use std::os::raw::{c_char, c_int, c_uint, c_void};
use std::{char, cmp, ptr};
diff --git a/components/gfx/text/shaping/mod.rs b/components/gfx/text/shaping/mod.rs
index 8c59c13427a..9f78c0d75ac 100644
--- a/components/gfx/text/shaping/mod.rs
+++ b/components/gfx/text/shaping/mod.rs
@@ -10,7 +10,7 @@
use crate::font::ShapingOptions;
use crate::text::glyph::GlyphStore;
-pub use crate::text::shaping::harfbuzz::Shaper;
+pub use self::harfbuzz::Shaper;
pub mod harfbuzz;