diff --git a/src/servo/gfx/renderer.rs b/src/servo/gfx/renderer.rs index 9ad56b7779c..e2b031d5cf6 100644 --- a/src/servo/gfx/renderer.rs +++ b/src/servo/gfx/renderer.rs @@ -159,7 +159,8 @@ fn draw_text(draw_target: AzDrawTargetRef, item: dl::display_item, text_run: Tex import vec::unsafe::to_ptr; import libc::types::common::c99::{uint16_t, uint32_t}; import geom::point::Point2D; - import text::font::{Font, create_test_font}; + import text::font_library::FontLibrary; + import text::font::Font; import azure::{AzNativeFont, AzFloat, AZ_NATIVE_FONT_CAIRO_FONT_FACE}; import azure::bindgen::{AzCreateScaledFontWithCairo, AzReleaseScaledFont, @@ -167,7 +168,9 @@ fn draw_text(draw_target: AzDrawTargetRef, item: dl::display_item, text_run: Tex AzReleaseColorPattern}; let bounds = copy (*item).bounds; - let font = create_test_font(); + // FIXME: The font library should not be created here + let flib = FontLibrary(); + let font = flib.get_test_font(); let nfont: AzNativeFont = { mType: AZ_NATIVE_FONT_CAIRO_FONT_FACE, diff --git a/src/servo/layout/text.rs b/src/servo/layout/text.rs index b5710e2b267..99277ec9f7f 100644 --- a/src/servo/layout/text.rs +++ b/src/servo/layout/text.rs @@ -4,7 +4,7 @@ import geom::size::Size2D; import gfx::geometry::au; import layout::base::*; // FIXME: Can't get around import *; resolve bug. import servo_text::text_run::TextRun; -import servo_text::font::create_test_font; +import servo_text::font_library::FontLibrary; class text_box { let text: str; @@ -24,8 +24,10 @@ impl text_layout_methods for @Box { _ { fail "expected text box in reflow_text!" } }; - let font = create_test_font(); - let run = TextRun(&font, subbox.text); + // FIXME: The font library should not be initialized here + let flib = FontLibrary(); + let font = flib.get_test_font(); + let run = TextRun(font, subbox.text); self.bounds.size = run.size(); subbox.run = some(run); } diff --git a/src/servo/text/font.rs b/src/servo/text/font.rs index 163e62e266b..5c0254e3ea9 100644 --- a/src/servo/text/font.rs +++ b/src/servo/text/font.rs @@ -1,4 +1,4 @@ -export Font, create_test_font, test_font_bin; +export Font, test_font_bin, create_test_font; import glyph::GlyphIndex; import vec_to_ptr = vec::unsafe::to_ptr; @@ -267,8 +267,11 @@ fn get_cairo_face(buf: &[u8]) -> (*cairo_font_face_t, fn@()) { (cface, dtor) } -fn create_test_font() -> Font { - Font(test_font_bin()) +fn create_test_font() -> @Font { + import font_library::FontLibrary; + + let flib = FontLibrary(); + ret flib.get_test_font(); } fn test_font_bin() -> [u8] { #include_bin("JosefinSans-SemiBold.ttf") } diff --git a/src/servo/text/font_library.rs b/src/servo/text/font_library.rs index 6a8cc5c6b5a..c4dabdfdf1f 100644 --- a/src/servo/text/font_library.rs +++ b/src/servo/text/font_library.rs @@ -11,6 +11,10 @@ class FontLibrary { let f = Font(font::test_font_bin()); ret @f; } + + fn get_test_font() -> @Font { + self.get_font() + } } #[test] diff --git a/src/servo/text/shaper.rs b/src/servo/text/shaper.rs index 3ff3bebfd41..6128d7e2c8a 100644 --- a/src/servo/text/shaper.rs +++ b/src/servo/text/shaper.rs @@ -146,7 +146,7 @@ fn should_get_glyph_indexes() { #[ignore(reason = "random failures")]; let font = font::create_test_font(); - let glyphs = shape_text(&font, "firecracker"); + let glyphs = shape_text(font, "firecracker"); let idxs = glyphs.map { |glyph| glyph.index }; assert idxs == [32u, 8u, 13u, 14u, 10u, 13u, 201u, 10u, 37u, 14u, 13u]; } @@ -156,7 +156,7 @@ fn should_get_glyph_h_advance() { #[ignore(reason = "random failures")]; let font = font::create_test_font(); - let glyphs = shape_text(&font, "firecracker"); + let glyphs = shape_text(font, "firecracker"); let actual = glyphs.map { |g| g.pos.advance.x }; let expected = [6, 4, 7, 9, 8, 7, 10, 8, 9, 9, 7].map { |a| px_to_au(a) }; assert expected == actual; diff --git a/src/servo/text/text_run.rs b/src/servo/text/text_run.rs index dc15043403f..26422a4704c 100644 --- a/src/servo/text/text_run.rs +++ b/src/servo/text/text_run.rs @@ -2,7 +2,8 @@ import geom::point::Point2D; import geom::size::Size2D; import gfx::geometry::{au, px_to_au}; import libc::{c_void}; -import font::{Font, create_test_font}; +import font_library::FontLibrary; +import font::Font; import glyph::Glyph; import shaper::shape_text; @@ -31,8 +32,9 @@ fn should_calculate_the_total_size() { #[test]; #[ignore(reason = "random failures")]; - let font = create_test_font(); - let run = TextRun(&font, "firecracker"); + let flib = FontLibrary(); + let font = flib.get_test_font(); + let run = TextRun(font, "firecracker"); let expected = Size2D(px_to_au(84), px_to_au(20)); assert run.size() == expected; }