Behdad Esfahbod
3292f9906b
[spline] Do some checks to avoid calling sqrt() if no feasible solution exists
2008-12-28 01:59:12 -05:00
Behdad Esfahbod
efe4d2ce99
[spline] Simplify code
2008-12-28 01:22:40 -05:00
Behdad Esfahbod
8672178bf6
[spline] Remove duplicated code by using a macro
2008-12-28 01:20:37 -05:00
Behdad Esfahbod
ef0f6c3ca3
[spline] Add an analytical bounder for splines
...
The way this works is very simple: Once for X, and once for Y, it
takes the derivative of the bezier equation, equals it to zero and
solves to find the extreme points, and if the extreme points are
interesting, adds them to the bounder.
Not the fastest algorithm out there, but my estimate is that if
_de_casteljau() ends up breaking a stroke in at least 10 pieces,
then the new bounder is faster. Would be good to see some real
perf data.
2008-12-27 23:44:58 -05:00
Behdad Esfahbod
f2f62c7c44
[twin] Micro-optimize
2008-12-27 16:25:51 -05:00
Chris Wilson
50bc2bc017
[path] Simply track the current point for bounds.
...
The idea is to track always update the current point, but not add it
during a move-to.
2008-12-27 11:46:24 +00:00
Chris Wilson
078ebb01ba
[path] Initialise spline from current point
...
Joonas spotted that the breakage with the curve bounds was the result of
initialising the spline using the original move to point and not the
current point.
Fixes: Bug 19256 Gnome Foot in gnome-games rendered incorrectly
(https://bugs.freedesktop.org/show_bug.cgi?id=19256 )
2008-12-27 11:34:31 +00:00
Chris Wilson
e76a676c8f
[twin] Trivial spelling correction.
...
This ain't no decadent descendent of the Hershey font...
2008-12-27 11:34:31 +00:00
Behdad Esfahbod
ab1febbf22
[twin] Resnap margin under monospace
2008-12-26 16:37:06 -05:00
Behdad Esfahbod
3c91d9f5a2
[twin] Adjust margins
2008-12-26 16:30:01 -05:00
Behdad Esfahbod
0b5c60bae1
[twin] Clean up hinting
2008-12-26 15:49:28 -05:00
Behdad Esfahbod
6e7a2c4ce3
[twin] Fix monospace for narrow glyphs
2008-12-26 15:41:13 -05:00
Behdad Esfahbod
e8e6ae1294
[twin] Cache pen and other properties on the scaled font
2008-12-26 15:17:15 -05:00
Behdad Esfahbod
e133cc1446
[twin] Don't stretch pen
2008-12-26 14:56:32 -05:00
Behdad Esfahbod
dec4d791f4
[twin] Minor shuffling
2008-12-26 14:56:23 -05:00
Behdad Esfahbod
c3de08ee2f
[twin] Further reduce weight
2008-12-26 14:11:52 -05:00
Behdad Esfahbod
5c201ef5cf
[scaled-font] Make cairo_debug_reset_static_data() work again
...
I broke it in a5983929f8
2008-12-26 00:05:19 -05:00
Behdad Esfahbod
730ed68ec1
[pattern] Fix comment typo
2008-12-25 23:29:02 -05:00
Behdad Esfahbod
a5f4a97aa4
[twin] Don't hint pen if hint-style is SLIGHT
2008-12-25 02:48:26 -05:00
Behdad Esfahbod
0c7eaf6e0a
[twin] Improve glyph hints
2008-12-25 02:46:27 -05:00
Behdad Esfahbod
e6205ea5a3
[twin] Improve hinting
2008-12-25 02:10:16 -05:00
Behdad Esfahbod
da8658b675
[twin] Hint dots
2008-12-25 01:35:36 -05:00
Behdad Esfahbod
f4c81e18f8
[twin] Disable pen hinting if hinting is off
2008-12-25 01:29:41 -05:00
Behdad Esfahbod
af91fc1974
[twin] Optimize hinting
2008-12-25 01:24:46 -05:00
Behdad Esfahbod
439959d1af
[twin] Implement hinting
2008-12-25 01:06:47 -05:00
Behdad Esfahbod
8296bc74c8
[twin] Reduce the weight just a bit, such that bold doesn't look as bad
2008-12-24 18:00:04 -05:00
Behdad Esfahbod
b2f8962545
[twin] Adjust baseline
2008-12-24 17:29:21 -05:00
Behdad Esfahbod
f980d017d2
[twin] Remove serif setting
...
I don't think I'm going to implement serif-drawing soon, so, remove the
infrastructure. Can always be added back later.
2008-12-24 17:00:43 -05:00
Behdad Esfahbod
1116febb40
[twin] Implement small-caps
2008-12-24 16:32:25 -05:00
Behdad Esfahbod
6767673961
[twin] Implement stretch
2008-12-24 16:13:12 -05:00
Behdad Esfahbod
0656e947f1
[twin] Implement slant
2008-12-24 15:43:17 -05:00
Behdad Esfahbod
9d493fcd16
[twin] Disable the serif mode
2008-12-24 15:36:57 -05:00
Behdad Esfahbod
6c1d21bf89
[twin] Implement monospace
2008-12-24 03:48:00 -05:00
Behdad Esfahbod
5def8c587b
[twin] Fix dots
2008-12-24 03:48:00 -05:00
Behdad Esfahbod
418c7ef133
[twin] Adjust font extents
2008-12-23 13:41:04 -05:00
Behdad Esfahbod
96e41c28e9
[twin] Minor cleanup
2008-12-23 13:41:04 -05:00
Behdad Esfahbod
556f6ce364
[twin] close_path the Q
2008-12-23 13:41:04 -05:00
Behdad Esfahbod
6929ed800d
[twin] Fix serif option parsing. Also make serif and weight do something
2008-12-23 13:41:04 -05:00
Behdad Esfahbod
d423339fce
[twin] Add face properties
...
Just parse them now. We don't use them yet.
2008-12-23 13:41:03 -05:00
Adrian Johnson
5ad65dc4be
Document PDF restrict_to_version API
2008-12-23 15:04:10 +10:30
M Joonas Pihlaja
1f894033f0
[spans] Close open subpaths when filling with a scan converter.
...
As reported by Christian Persch, open subpaths weren't being
closed when rendering to an image surface:
http://bugs.freedesktop.org/show_bug.cgi?id=19240
2008-12-23 03:32:07 +02:00
M Joonas Pihlaja
0aa34c6435
[svg] Fix build when building only the svg vector surface.
...
The SVG vector surface pulls in font subsetting and that in turns
uses the PDF operators in cairo-type3-glyph-surface.c.
2008-12-23 03:31:41 +02:00
Adrian Johnson
6ce97907ed
win32-font: truncate instead of fail if toy font name too long
...
http://lists.cairographics.org/archives/cairo/2008-December/016109.html
2008-12-22 11:09:27 +10:30
Adrian Johnson
d99583bae6
Fix win32 font breakage
...
as a result of the toy font face changes in f7ab65e9b0
2008-12-21 17:09:20 +10:30
Behdad Esfahbod
a5983929f8
[toy-font-face] Move toy font face code in a file of its own
2008-12-20 01:18:12 -05:00
Behdad Esfahbod
8bf49b27ae
[font-face] Use cairo_font_face_t instead of toy, for nil objects
...
And with a NULL backend. We are not supposed to read the nil objects
afterall.
If this causes crashes, the crash site should be fixed.
2008-12-20 01:06:30 -05:00
Jeff Muizelaar
e3675f8ac0
Fix definition of _cairo_quartz_font_face_backend
...
Removes the NULL so that _cairo_quartz_font_face_scaled_font_create
is in the correct location.
2008-12-19 08:50:26 -05:00
Jeff Muizelaar
fa7d96e123
Fix compilation of quartz surface.
...
Declares _cairo_quartz_scaled_font_backend ahead of time and makes it static.
Also, removes the 'static' from the _cairo_quartz_font_backend definition.
2008-12-19 08:47:07 -05:00
Jeff Muizelaar
b4e0d489bb
Merge branch '1.8'
...
Conflicts:
NEWS
build/Makefile.am.changelog
cairo-version.h
src/cairo-gstate.c
2008-12-18 17:25:17 -05:00
Jeff Muizelaar
f60da9a379
Fix _compute_transform to check for nearly degenerate matrices
...
If a matrix was something like [0 .000001 0, .000001 0 0] the old code would
assume that xx and yy were greater than 0 and turn the nearly degenerate matrix
into an actual degenerate one. This caused things to blow up later on. Now we
check that our nearly rectangular matrices are not nearly degenerate, and let
the nearly degenerate ones fall through to the non-rectangular path.
Note: I'm not sure why NEARLY_ZERO(d) is fabs(d) < 1/65536 instead of some
other value. Hopefully, it's a useful definition.
This problem was found by a test case attached to:
https://bugzilla.mozilla.org/show_bug.cgi?id=467423
2008-12-18 17:07:25 -05:00