Commit graph

6562 commits

Author SHA1 Message Date
Behdad Esfahbod
5ee6aad471 [toy] Use twin font if font backend returns UNSUPPORTED 2008-12-17 18:19:24 -05:00
Behdad Esfahbod
eb069094ea Treat any toy family starting with "@cairo:" as request for twin 2008-12-17 18:19:24 -05:00
Jeff Muizelaar
32c6610905 Call _cairo_error when propagating error status from the font_face. 2008-12-17 17:43:37 -05:00
Jeff Muizelaar
1d72e53c3e Add a missing _cairo_error() to a bunch of status returns. 2008-12-17 17:42:18 -05:00
Behdad Esfahbod
af3a892c3e [ft] Remove stale comment 2008-12-17 16:45:28 -05:00
Karl Tomlinson
e4d7c87b5e [ft] Don't call FT_Done_Face() on faces we did not create 2008-12-17 16:40:12 -05:00
Behdad Esfahbod
6778a5f67a [.gitignore] Update 2008-12-17 16:20:18 -05:00
Behdad Esfahbod
26f4719999 [scaled-font] Improve docs 2008-12-17 16:08:32 -05:00
Behdad Esfahbod
f7ab65e9b0 Clean up toy font face handling
This commit moves the toy-to-real mapping from the scaled font creation
time to font face creation.  A toy font face will keep an internal ref
to an implementation face.  Then cairo_scaled_font_create() will simply
substitute the implementation face before creating anything.

This also modifies the cairo-ft toy creation in that we now create a
non-resolved pattern and store it in a cairo-ft font-face.  We then
do the resolving and unscaled font creation at scaled-font creation
time.  This also means that cairo_ft_font_face_create_for_pattern()
now accepts non-resolved patterns too, and does the right thing about
them.  As much as that can be called right.

Some testing of toy font creation performance is in order, as is testing
win32 and quartz font backends.
2008-12-17 15:13:35 -05:00
Chris Wilson
43edb4dd7b Fix compilation with gcov
We need to add --coverage to LDFLAGS, so create CAIRO_LDFLAGS and use that
to populate AM_LDFLAGS.
2008-12-14 16:44:03 +00:00
Chris Wilson
bcea3151d6 [test] Add missing joins.ref.png
Missed this file when adding the reference images for joins.
2008-12-14 16:44:03 +00:00
Chris Wilson
8cec548854 [NEWS] Add notes for 1.8.6
Add the historical blurb for 1.8.6.
2008-12-14 16:42:59 +00:00
Chris Wilson
0a1d194ad8 [perf] Fix for git-1.6
git-1.6 moved all the subcommands out of the PATH so update our usage.
2008-12-14 16:41:17 +00:00
Chris Wilson
1c2eba92c1 [RELEASING] Update Makefile for git-1.6
Git moved all the subcommands out of the PATH, so we need to update our
usage.
2008-12-14 16:41:01 +00:00
Chris Wilson
2fa6b63537 [RELEASING] Correct a few minor typos.
As I was reading through the instructions, take the opportunity to fix a
few spelling mistakes.
2008-12-14 16:39:55 +00:00
Chris Wilson
1950abd14c [doc] Fix erroneous doc comment.
A normal comment was marked as a gtk-doc entry and thus causing gtk-doc to
complain.
2008-12-14 16:39:24 +00:00
Chris Wilson
2b7c6f361a [skiplist] Allocate elements in chunks.
Use a pool allocator to preallocate a chunk from which to allocate the
skiplist elements (if we failed to reallocate from the freelists).
2008-12-12 13:43:36 +00:00
Chris Wilson
903b39c304 [test] Make the xlib-fallback use the image refs.
The xlib-fallback is closer to the image than the xlib backend, so prefer
not to use the xlib.ref.png.
2008-12-12 13:43:36 +00:00
Chris Wilson
792057539b [test] Only delete output images beneath output.
We were using an overly-liberal find that also deleted copied output for
use in CAIRO_REF_DIR if that directory was below test/. So only delete
files below output/ (which should only be used by cairo-test).
2008-12-12 13:43:36 +00:00
Chris Wilson
913cbad25e [test] Add a simple joins test case
Exercise joins between short (<LINE_WIDTH) lines - used in debugging
stroke-to-path.
2008-12-12 13:43:30 +00:00
Chris Wilson
9f4f41de7d [tutorial] Correct twin font name
We changed the name for the builtin font  from "cairo" to "<cairo>" to
reduce possible naming conflicts - update the tutorial to match.
2008-12-12 13:23:09 +00:00
Chris Wilson
4ff884fe4d [test] Check idempotency of append_path() -> copy_path()
The API should preserve the precision across the public interface so that
the user is able to retrieve the co-ordinates that he used to construct
the path. However since we transform the path to a 24.8 fixed-point
internal represent we currently incur a precision-loss - the affects of
which can be seen in the miter-precision test case for example. It is
planned to move to keeping the path as doubles until the backend
explicitly requests the fixed-point coodinates (and some backends, e.g.
pdf, might only ever use the doubles). Then, barring rounding errors
during path transformations, we should be able to return the exact path
the user set (under an identity CTM, of course ;-).
2008-12-12 13:23:09 +00:00
Chris Wilson
fe4af195a7 [test] Add a rectilinear-dash test case.
Exercise dashing on pixel-aligned boundaries to test extending the
rectilinear stroker to handle dashes.
2008-12-12 13:23:08 +00:00
Chris Wilson
1d68ee73f8 [pattern] Compute the combined color content.
When multiplying two colors together, the combined content is simply the
or of the their contents.
2008-12-12 13:21:11 +00:00
Chris Wilson
30cef3116e [spans] Add a sentinel cell to the cell_list.
By terminating the list with a cell for INT_MAX, we remove a few
conditionals from the hot-paths.
2008-12-12 12:00:45 +00:00
Chris Wilson
3b2bb95249 [spans] Embed 64 edge buckets into polygon
Frequently we only need a few y-buckets, so embed 64 into the parent
structure.
2008-12-12 12:00:45 +00:00
Chris Wilson
70235df72e [spans] Pool capacity is in bytes not elements.
Set the polygon capacity to a shade under 8k, not 200 bytes, reducing the
number of malloc calls made by the scan convertor by a factor of 40!
2008-12-12 12:00:44 +00:00
Chris Wilson
6f284587a4 [script] Add examples
Add some simple examples to demonstrate CairoScript, courtesy of M Joonas
Philaja.
2008-12-12 12:00:44 +00:00
Chris Wilson
463dc28913 [script] Allocate the interned strings from a permanent pool
Reduce memory fragmentation by allocating the permanent strings from a
single pool.
2008-12-12 12:00:44 +00:00
Chris Wilson
adc9c90d79 [script] Freed object cache.
Cache the last freed object to reduce malloc pressure.
2008-12-12 12:00:44 +00:00
Chris Wilson
1042909796 [script] Replay multiple files.
Iterate over the argument vector and replay each file on the command line.
2008-12-12 12:00:44 +00:00
Chris Wilson
c5c04528b5 [script] Slab allocator
Allocate small objects from a pool and maintain a per-size free-list.
2008-12-12 12:00:44 +00:00
Chris Wilson
83f0e6cf62 [script] Inline the stack push
Frequently to push an object onto the stack all we need is to simply
perform the struct copy - so inline it and only call the out-of-line
function if we need to enlarge the stack.
2008-12-12 12:00:43 +00:00
Chris Wilson
565b3d6ad6 [script] Switch to hyphens.
Using hyphen in the operators is easier to read than underscores.
2008-12-12 12:00:43 +00:00
Chris Wilson
3abfd836a0 [script] Null constructor
Expose 'null', principally for comparison purposes.
2008-12-12 12:00:43 +00:00
M Joonas Pihlaja
7540ac7f23 [script] Reverse direction of bitshift.
Positive shift counts should shift left according to PostScript.
2008-12-12 12:00:43 +00:00
Chris Wilson
4be479cc63 [script] Add simple to integer converter
Simple operator to coerce the type of the object on top of the stack to
integer.
2008-12-12 12:00:43 +00:00
Chris Wilson
6711b591b9 [script] Simple replay.
Basic script executer.
2008-12-12 12:00:42 +00:00
Chris Wilson
177a68ef3e [script] Add a few mathematical constants
Just pi and the sqrt(2) for the moment, more to come on demand.
2008-12-12 12:00:42 +00:00
Chris Wilson
5dfaa22a57 [script] Add repeat operator.
Simple operator to repeat procedure n times.
2008-12-12 12:00:42 +00:00
M Joonas Pihlaja
738cb32745 [script] Fix \t escapes in string literals.
Typo \r -> \t.
2008-12-12 12:00:42 +00:00
M Joonas Pihlaja
265ebd372a [script] Flesh out the relational comparison operators to be more PostScript-like.
The relational comparison operators can now compare strings vs names
by content as well as performing automatic type promotions on the
numeric types.  For other types relational comparisons succeeed
only if the values compare equal according to the eq operator, and
put the interpreter into a type-error state otherwise.
2008-12-12 12:00:42 +00:00
M Joonas Pihlaja
05afec7a8a [script] Implement the ne operator. 2008-12-12 12:00:41 +00:00
M Joonas Pihlaja
1aeb96dc28 [script] Implement PostScript-like semantics for the eq operator.
The eq operator would only work for some types and put the
interpreter in an error state if passed objects it didn't
know how to compare.  It would also not compare strings
by value nor allow strings to be compared to names.
This patch makes any two objects comparable.
2008-12-12 12:00:41 +00:00
M Joonas Pihlaja
620028fd19 [script] Don't segfault when hashing empty strings.
Check for the empty string.
2008-12-12 12:00:41 +00:00
M Joonas Pihlaja
4ba77f7765 [script] Fix dictionary construction to access the right stack slots.
It bound values to themselves and ignored keys.
2008-12-12 12:00:41 +00:00
Chris Wilson
af53297a97 [cairo] Use a stack buffer for text path.
First try to allocate glyphs from the stack, similar to cairo_show_text().
2008-12-12 12:00:41 +00:00
Chris Wilson
09589e20e1 [clip] Intersect to region extents.
When querying the intersection of a rectangle with the clip region, the
result only depends upon the region extents so we do not need to perform
an expensive region-region intersection computation.
2008-12-12 12:00:40 +00:00
Chris Wilson
c5acb125e9 [surface] Avoid a short-lived context during fallback_clone_similar()
We can paint to the surface directly without need of a temporary context,
so do so.
2008-12-12 12:00:36 +00:00
Chris Wilson
888f62feaa [test] Propagate error from path
If the path is in error, just append it to the context so that the error
is propagated correctly.
2008-12-12 11:11:49 +00:00