Matt Brubeck
5991afafa4
Add a fast path for shaping ASCII text
2016-05-20 16:47:01 -07:00
Matt Brubeck
7f6b1da85c
Allow creation of unboxed FontTables
2016-05-19 09:44:56 -07:00
Matt Brubeck
0010b448b8
Move hb_tag! macro and KERN into font module
2016-05-19 09:44:56 -07:00
Matt Brubeck
1eab6fbb2e
Simplify FontTableMethods::with_buffer
2016-05-19 09:44:56 -07:00
Per Lundberg
2f7ed1d73e
Removed unused imports
...
This fixes #11185 .
2016-05-15 22:24:26 +03:00
Matt Brubeck
659305fe0a
Use byte indices instead of char indices for text runs
...
Replace character indices with UTF-8 byte offsets throughout the code dealing
with text shaping and breaking. This eliminates a lot of complexity when
converting from one to the other, and interoperates better with the rest of
the Rust ecosystem.
2016-04-28 14:32:14 -07:00
Matt Brubeck
dba878dfb2
Remove unneeded add_nonglyph_for_char_index
...
This is a no-op, since a "non-glyph" is simply `GlyphEntry(0)`. This is the
same as `GlyphEntry::initial()`, which all the entries are already initialized
to.
2016-04-28 08:07:13 -07:00
Matt Brubeck
97a58e9689
Don't assume the first glyph is part of the first char
...
Shaper::save_glyph_results incorrectly starts its loop by setting glyph_span
to a length of 1. This means that the `if glyph_span.len() == 0` test in the
inner loop will never succeed.
Instead the glyph span should start out empty, and a glyph should be added only
as the corresponding char is found. For comparison, see the Gecko code this
was ported from:
https://hg.mozilla.org/mozilla-central/file/ab0044bf/gfx/thebes/gfxHarfBuzzShaper.cpp#l1682
2016-04-28 07:59:42 -07:00
Matt Brubeck
4d05bf23b8
Get rid of unnecessary clamping in text shaping
2016-04-27 10:58:16 -07:00
Matt Brubeck
83feda3ac2
Stop using deprecated str::char_*
methods
...
Fixes deprecation warnings in the gfx crate.
2016-04-27 10:57:11 -07:00
Matt Brubeck
7e67bb788c
Replace range::Range with std::ops::Range in text shaping code
2016-04-27 10:17:21 -07:00
Zbynek Winkler
924d804583
Move '&&' to the end of the previous line.
...
Following https://github.com/servo/servo/issues/10692 this is just a
formating change to satisfy a new tidy requirement of not having '&&' at
the beginning of a line.
2016-04-22 14:28:18 +02:00
Jonathan Schuster
205336bf2e
Move util::range into its own crate
2016-02-25 21:06:10 -05:00
Olaf Buddenhagen
c5ede5851e
Derive Debug on FontGroup and its components
2015-12-12 10:04:33 +01:00
bors-servo
ac448cacba
Auto merge of #7799 - mbrubeck:glyph-cleanup, r=pcwalton
...
Misc. code cleanup in gfx::text::glyph.
<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png " height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7799 )
<!-- Reviewable:end -->
2015-09-30 17:44:02 -06:00
Glenn Watson
339a3f869b
Split Au type into separate crate, with minimal dependencies.
2015-10-01 07:16:11 +10:00
Matt Brubeck
d3d1d15615
Remove unused is_missing flag
2015-09-30 09:45:24 -07:00
Matt Brubeck
e663005ce2
Simplify add_glyph_for_char_index
2015-09-30 09:36:01 -07:00
Matt Brubeck
569b434023
Fix shaping of tab characters with Harfbuzz 1.0
...
Harfbuzz now renders tabs with a "missing character" glyph by default, so we
need to filter them out ourselves after computing an advance.
2015-09-29 14:34:51 -07:00
Matt Brubeck
371e6897e1
Break text runs by unicode script
2015-09-29 14:34:49 -07:00
Matt Brubeck
062493fac6
Upgrade to the new harfbuzz-sys crate
2015-09-29 14:34:48 -07:00
Ravi Shankar
889eec364b
sorted the extern crate, mod & use declarations
2015-09-24 02:12:45 +05:30
Brandon Fairchild
de3547e401
Fix reported test-tidy errors for unmerged import blocks
...
This merges import blocks that were reported by tidy as unmerged.
2015-09-19 12:50:14 -04:00
Patrick Walton
53f47e74db
gfx: Remove some useless calls to drop
during HarfBuzz shaping.
2015-09-17 13:31:14 +02:00
Patrick Walton
dc26511ff3
gfx: Properly create continuation glyph entries for ligatures.
2015-09-17 13:31:09 +02:00
Mathieu Rheaume
7320433cca
Remove 'get_*' on getters as per RFC 0344 on various components
2015-09-12 20:14:01 -04:00
Matt Brubeck
afafb0b71c
Implement get_table_for_tag on FreeType
...
Also fixes use-after-free of FontTable buffers.
2015-09-03 13:35:44 -07:00
wilmoz
64ac4f175f
Make test-tidy check that braces have spaces before or after them
2015-08-31 12:30:55 -05:00
Johann Tuffe
ec07178b6f
sort all uses
2015-08-20 20:47:12 +08:00
Josh Matthews
039929da5c
Warning police.
...
Closes #6949 .
2015-08-04 15:16:15 +02:00
bors-servo
d77f9415c5
Auto merge of #6937 - mbrubeck:hb_funcs, r=glennw
...
Store Harfbuzz callback functions in a static var
r? gw
<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png " height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6937 )
<!-- Reviewable:end -->
2015-08-03 22:40:35 -06:00
Matt Brubeck
47a0d494ec
Make Harfbuzz font_funcs static
2015-08-03 15:30:46 -07:00
Matt Brubeck
f8e92b2b01
Implement the unicode-bidi property
2015-08-03 14:12:33 -07:00
Matt Brubeck
dfac8ce4a1
Basic support for bidirectional text
2015-07-23 20:05:55 -07:00
Ms2ger
ce4d442941
Move away from the repeat().take().collect() pattern.
...
This was the preferred pattern between the deprecation of Vec::from_elem and
the addition of the count argument to the vec![] macro.
2015-07-14 16:19:30 +02:00
ecoal95
8cbfb3482c
Use euclid from crates.io
2015-06-19 00:04:24 +02:00
Corey Farwell
5c408d2be9
rust-geom API changes
...
https://github.com/servo/rust-geom/pull/81
2015-06-13 12:28:21 -07:00
Corey Farwell
8e3f4bba85
Reduce max line length from 150 to 120 characters
...
Part of https://github.com/servo/servo/issues/6041
2015-05-24 00:01:49 -04:00
Simon Sapin
8b522f2e7d
Rename Au methods with f32/f64 instead of frac32/frac/subpx
2015-05-05 18:23:29 +02:00
Simon Sapin
ef8edd4e87
Upgrade to rustc 551a74dddd84cf01440ee84148ebd18bc68bd7c8.
2015-05-05 10:07:34 -04:00
Glenn Watson
3815cb4a81
Remove unneeded assert (code below handles it) and a warning. Fixes #5230 .
2015-04-10 09:55:59 +10:00
Josh Matthews
a68fa74f4b
Remove int_uint feature from gfx.
2015-04-07 11:58:28 -04:00
Bryan Bell
29852bb111
Show tabs in pre elements
...
Display tab characters as 8 spaces for pre and other elements that don't
compress whitespace.
2015-04-02 22:15:39 -07:00
Ms2ger
ba87666cdb
Update some code that's feature-gated under core.
2015-03-21 18:44:39 +01:00
Patrick Walton
5fdaba05a6
layout: Implement text-align: justify
and text-justify
per
...
CSS-TEXT-3 § 7.3.
`text-justify: distribute` is not supported.
The behavior of `text-justify: none` does not seem to match what Firefox
and Chrome do, but it seems to match the spec.
Closes #213 .
2015-01-29 17:00:41 -08:00
Ms2ger
505159a464
Import the util crate as util rather than servo_util.
...
This used to conflict with the util crate from the standard library, which
has long since been removed.
The import in layout has not been changed because of a conflict with the
util mod there.
2015-01-29 12:16:41 +01:00
Ms2ger
024571dfa3
Use chars().count() rather than char_len().
...
The latter is obsolete in current Rust.
2015-01-22 14:49:26 +01:00
Ms2ger
7eb659371d
Stop calling is_not_null.
...
It has been removed from Rust.
2015-01-20 13:08:49 +01:00
Ms2ger
05c4e3b9f5
Stop using Vec::from_elem.
...
It is obsolete on Rust master.
2015-01-19 14:42:30 +01:00
Gilles Leblanc
9fe39951b0
Write a macro or syntax extension to generate OpenType tags
...
Fixes #4556
2015-01-15 20:01:40 -05:00