| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
For doing so, I've changed document owner to be the paginated surface,
instead of the svg surface like previously. That's because fallback
resolution is stored in paginated surface.
|
|
|
|
|
|
| |
I sorry for this noise, I didn't notice cworth's device_{x, y}_offset
changes. Now cairo builds again.
paths...
|
|
|
|
|
|
|
|
|
|
| |
With previous commit, freetype font backend is able to transform
both bitmap and outline glyphs, so ignores FC_MATRIX from now,
cairo doesn't need this for artificial oblique. And cairo doesn't
use FC_MATRIX direct anyway, it has its own font matrix that may be not
equal to FC_MATRIX in the font pattern! You should pass the matrix
(usually the matrix is multiplied by font's pixel size) to cairo when
creating scaled font.
|
|
|
|
|
|
|
| |
This function is used to shape bitmap glyphs(outline glyphs are
transformed by freetype). That means freetype backend is able to
tranform both bitmap & outline glyphs now. This is needed for glyph
rotating, artificial oblique etc.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The old behavior of returning "infinite" extents is inconsistent with
the current usage of meta-surface where it is always created for
replay against a particular (sized) target surface and that size is
passed to _cairo_meta_surface_create.
Also clarify documentation of _cairo_surface_get_extents to eliminate
the possibility of inifinite extents.
|
|
|
|
|
|
| |
(This is covering up my mistake from the last batch of 12 commits which
wasn't ready to be pushed yet. This fixes some of the crashes which
were introduced, and is a good thing to do regardless.)
|
|
|
|
|
| |
This explains why the SVG result from the fallback-resolution test
doesn't actually show multiple resolutions in effect at the same time.
|
| |
|
| |
|
|
|
|
|
|
|
| |
The trick is to create a new scaled_font with the device_transform
multiplied into the CTM within _cairo_surface_show_glyphs before
calling into the backend. The fallback-resolution test shows that
the font size is now correct.
|
|
|
|
|
|
|
| |
The trick is to simply multiply the device_transform into the CTM
within _cairo_surface_stroke before passing the CTM down to the
backend. The fallback-resolution test shows that the stroke width is
now correct.
|
| |
|
|
|
|
|
|
|
|
| |
Add new, private _cairo_surface_set_device_scale for getting at the
scaling components of device_transform. Use this in paginated surface
when replaying to an image surface. The fallback-resolution test now
clearly shows that image fallback resolution can be controlled by the
user. Hurrah!
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a step toward allowing device scaling in addition to device offsets.
So far, the scale values are still always 1.0 so only the translation is
actually being used. But most of the code is in place for doing scaling as
well and it just needs to be hooked up.
There are some fragile parts in this code, all of which involve using the
translation without the scale, (so grep for device_transform.x0 or
device_transform->x0). Some of these are likely bugs that will hopefully
be obvious once we start using the scale. Others are OK if only because
we 'know' that we aren't ever setting device scaling on a surface that
has a device offset (we only set device scaling on surfaces we create
internally and we don't export device scaling to the user).
All of these fragile parts in the code have been marked with comments of
the form: XXX: FRAGILE.
|
| |
|
|
|
|
| |
consitency/grepability
|
| |
|
|
|
|
|
|
|
|
|
| |
cairo_surface_set_fallback_resolution.
This just provides the mechanics for storing the value and removing the old
function calls. The new value is still not used anywhere (though nor where
the old values), so there should be no functional change (other than forcing
any programs calling the old API to be updated).
|
| |
|
|
|
|
|
|
|
|
| |
Global advance exists for historical reasons. Nowadays, most of fonts
support unicode, means it's no guaranteed to every glyphs in the font
has the same advance.Sometimes it maybe is biger/smaller then the global
advance even for monospace fonts!So forcing their advance to global
advance, it's obviously wrong.
|
|
|
|
|
|
|
| |
The standard convention is that the ARGB32 reference image has no
-argb32- component in its name (no real important reason, just
historical). So let's be consist and rename:
test/ft-text-vertical-layout-argb32-ref.png -> test/ft-text-vertical-layout-ref.png
|
| |
|
| |
|
|
|
|
|
| |
Fix scaled font metrics and glyph metrics calculation for vertical
layout. Test case ft-text-vertial-layout passes now.
|
| |
|
|\ |
|
| |
| |
| |
| |
| |
| | |
This test exercises the combination of cairo_get_group_target along
with cairo_surface_get_device_offset. Something funny is currently
going on with the surfaces based on the paginated surface.
|
| | |
|
|/
|
|
| |
since we can compute it from glitz format.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
A recent renaming from CAIRO_MAXSHORT also changed the range of some
values from INT16_MAX to UINT16_MAX. The test suite shows one case
where this introduces a bug, (push/pop_group with SVG and RGB24
surfaces).
I haven't tracked the bug down, (presumably there's overflow of the
unsigned value at some point), but I'm now reverting this to avoid
triggering the bug.
|
| |
|
|
|
|
| |
that we use them.
|
|
|
|
|
| |
Instead, use the standard INT16_{MIN,MAX} and UINT16_{MIN,MAX} as
appropriate.
|
|
|
|
|
|
| |
This rectangle has regular integer values, not fixed-point values.
So the old name was horribly wrong and misleading, (and yes I think
it was even I that had suggested it).
|
| |
|
| |
|
|
|
|
|
|
| |
This patch was produced by running git-stripspace on all *.[ch] files
within cairo. Note that this script would have also created all the changes
from the previous commits to remove trailing whitespace.
|
|
|
|
|
|
|
|
|
|
|
| |
This patch was produced with the following (GNU) sed script:
sed -i -r -e 's/[ \t]+$//'
run on all *.[ch] files within cairo.
Note that the above script would have also created all the changes
from the previous commits to remove trailing whitespace.
|
|
|
|
|
|
|
|
| |
This patch was produced with the following (GNU) sed script:
sed -i -r -e '/^[ \t]*[{}][ \t]*/ s/[ \t]+$//'
run on all *.[ch] files within cairo.
|
|
|
|
|
|
|
|
|
|
| |
This patch was produced with the following (GNU) sed script:
sed -i -r -e '/^[ \t]*\/?\*/ s/[ \t]+$//'
run on all *.[ch] files within cairo, (though I manually excluded
src/cairo-atsui-font.c which has a code line that appears as a comment
to this script).
|
|
|
|
|
|
|
|
| |
This patch was produced with the following (GNU) sed script:
sed -i -r -e 's/^[ \t]+$//'
run on all *.[ch] files within cairo.
|
| |
|
| |
|
|
|
|
|
|
|
| |
Previously, when scaled_glyph_init failed we would destroy the scaled glyph in
CLEANUP. However, this causes trouble later because there is still a reference
to the glyph in the cache. This remaining reference causes a number of bad things,
including a double destruction when the cache is destroyed.
|
| |
|
| |
|
| |
|
| |
|