Commit graph

2601 commits

Author SHA1 Message Date
Behdad Esfahbod
9637ffc62f [cairo-xlib] Minor cleanup and add comment 2007-12-17 01:55:15 -05:00
Behdad Esfahbod
83963d2a9e [cairo-ft] Revert "Force non-AA text when using a bitmap strike with only scaling transform." (#13479)
The reasoning for that commit was that fonts with bitmap strikes should be
rendered with antialiasing off for those (hopefully) few glyphs that don't
have a bitmap.

However, it turns out, there are fonts that have some, but very few, bitmaps,
and this changed forces non-AA rendering on them.  We now support multiple
glyph formats per font in the Xlib backend, so backing this out to let every
glyph render as is.  Fontconfig rules can be used to force AA off on a per-font
basis.

This reverts commit 06af5c2891.
2007-12-17 01:19:53 -05:00
Behdad Esfahbod
805b668260 [cairo-xlib] Support scale fonts with glyphs of multiple formats (#13479)
We maintain three Xrender glyphsets per scaled font, one for each of A1, A8,
and ARGB32.  This is required to correctly support fonts with bitmaps for
some glyphs but not all.
2007-12-17 01:14:45 -05:00
Carl Worth
f6dd037cf3 Remove rasterization when a paginated surace is used as a source
This was an old workaround for a bug that seems to no longer
exist. Thanks to Donn Ingle for pointing out the problem.
2007-12-14 14:04:13 -08:00
Adrian Johnson
9b3ce8b17a PS: Use the correct bounding box in Type 3 fonts
Previously this was a fixed size.
2007-12-12 23:41:53 +10:30
Adrian Johnson
afdd53d35f PS: Return the status for emit_image and gradients 2007-12-12 23:35:56 +10:30
Boying Lu
55f5c4ffda Remove cairo_private from static declaration 2007-12-12 21:05:57 +10:30
Claudio Ciccani
942e3d5308 [cairo-directfb] Support some environment variables
Added a couple of (boolean) env. vars affecting the backend:
CAIRO_DIRECTFB_NO_ACCEL, disables acceleration
CAIRO_DIRECTFB_ARGB_FONT, enables using ARGB fonts instead of A8
2007-12-11 15:50:05 +01:00
Claudio Ciccani
f3cec9d1c2 Merge branch 'master' of git+ssh://klan@git.freedesktop.org/git/cairo 2007-12-10 22:58:06 +01:00
Behdad Esfahbod
c26084a45f Pass $(MAKE) to test shell scripts (#13591) 2007-12-10 14:38:48 -05:00
Claudio Ciccani
08516d97a1 [cairo-directfb] Merging from directfb.org
- Improved performance in case of surface conversion: allocate a shadow buffer that can only grow
- Fixed support for small surfaces (less than 8x8)
- Optimize the blending function according to the surface format
- Added _directfb_categorize_operation(): selects the blitting function according to the transform matrix
- Avoid inverting the matrix when doing a simple StretchBlit()
- Use TextureTriangles() instead of StretchBlit() when scale factors are negative
- Added support for ARGB32 fonts (converted to A8 internally)
- Removed unused functions (flush() and mark_dirty_rectangle())
- Code cosmetics
2007-12-10 18:54:01 +01:00
Emmanuel Pacaud
1f1f96d645 [SVG] Fix a minor issue when emitting a radial gradient with r1 == r2.
Minor because I don't know how the output is supposed to look in this case.
2007-12-08 22:32:16 +01:00
Brian Ewins
19680f545a [quartz] fix gradient-zero-stops crash (moz#407104)
Fixes failure in gradient-zero-stops test, reported
by Boris Zbarsky (thanks!) as Mozill a bug#407104.
2007-12-06 21:31:15 +00:00
Brian Ewins
e6c34bb691 [quartz] refactor gradient handling
Avoid checking the gradient type twice. This refactor
also makes it easier to check when the gradient has no stops,
and will make it easier to separate out the different
implementations of EXTEND_REPEAT, REFLECT for linear and
radial gradients.
2007-12-06 21:31:14 +00:00
Peter Weilbacher
a7ae9c45d9 [os2] add memory allocation wrappers for pixel buffers
Add ability to use OS/2 APIs instead of C library functions to manage
pixel buffer allocations. This is to work around heap fragmentation.
This implements two wrapper functions which replace _cairo_alloc_abc and
free and when compiled with OS2_USE_PLATFORM_ALLOC the OS/2 functions
DosAllocMem and DosFreeMem will be used for allocation/deallocation.

Also try to minimize the heap when shutting down the cairo library.
2007-12-06 16:46:28 +01:00
Carl Worth
be79779331 Restrict initial buggy version to X.Org 6.7 rather than 6.0
Also add some comments describing the test.
2007-12-05 09:24:17 -08:00
Bernardo Innocenti
d4138d1161 Fix version check for buggy_repeat on modular Xserver 1.x
The versioning of the X server has restarted from 1.0 in the
modular build.  So we adjust the text to avoid considering
the new servers buggy.
2007-12-05 09:19:22 -08:00
Vladimir Vukicevic
150564c7f8 [quartz] use rectangle_int_t, not rectangle_int16_t 2007-12-04 14:05:47 -08:00
Vladimir Vukicevic
e8574022f9 [quartz] cleanup: remove trailing whitespace 2007-12-04 13:54:32 -08:00
Vladimir Vukicevic
ee01a94726 [quartz] Use CGContextDrawTiledImage if available
Use this 10.5-only method if available, as it greatly speeds up
tiled image rendering (EXTEND_REPEAT).
2007-12-04 13:53:03 -08:00
Vladimir Vukicevic
2c25033e14 [quartz] Handle creating 0x0 surfaces
Make all 0x0 surfaces be no-ops when used in a rendering operation.
2007-12-04 13:50:49 -08:00
Adrian Johnson
b701b42630 win32: Implement _cairo_win32_scaled_font_init_glyph_surface()
This is required when using win32 bitmap fonts with PS/PDF surfaces.
2007-12-02 01:36:43 +10:30
Adrian Johnson
1441e165f2 Fix regression in Type1 Fallback
As a result of the changes to improve the status checking,
_cairo_type2_charstrings_init() was failing due to the failure
status returned when the font->output stream is destroyed.
This is because _cairo_type2_charstrings_init() does not
create an output stream.

Fix this by initializing font->output to NULL and only
destroy it if not NULL.
2007-12-02 00:50:28 +10:30
Behdad Esfahbod
e6166f7b44 Convert bash scripts to regular sh ones for greater portability 2007-12-01 04:19:39 -05:00
Carl Worth
0d932f43fe Explicitly call bash for bash-specific scripts
Thanks to Solaris-using Brian Cameron for pointing out that our
shell scripts are bash-specific. We'd be glad if someone cared to
rewrite them to not require bash, but for now let's have truth in
advertising at least.
2007-11-30 16:19:45 -08:00
Adrian Johnson
f4b93cceb7 PS: Use correct glyphs widths for Type 3 fonts
Previously the widths were set to 0.
2007-11-29 23:18:45 +10:30
Adrian Johnson
2729af6c12 PS: Fix the Type 3 FontBBox
This was previously a fixed size. Make it [0 0 0 0] the same as the
other fonts.
2007-11-29 23:07:47 +10:30
Adrian Johnson
77aab8fdbb PS: Don't emit an image for Type 3 .notdef glyph
Make the .notdef procedure an empty procedure instead
of creating an empty image mask. This reduced the size
of the PS file.
2007-11-29 23:03:40 +10:30
Adrian Johnson
78e8d3d9bd PS: Fix the bounding boxes of Type 3 glyphs
When viewing with ghostscript the glyphs were clipped
2007-11-29 22:54:54 +10:30
Adrian Johnson
97b0d8b3c3 PS: Make Type 3 fonts text selectable
Put the glyph names in the Encoding array the same as is done for
Type 1 and Type42 fonts.

Acroread and Evince are still unable to correctly extract the text
after conversion with ps2pdf. However examining the pdf file shows
the glyph names are correct so this is probably a limitation of
Acroread and Evince.
2007-11-29 22:52:52 +10:30
Adrian Johnson
5e8f60531a PS: Ensure that xyshow operator has a pair of offsets for each glyph
The last entry should have been "0 0" instead of "0".
2007-11-29 09:20:01 +10:30
Brian Ewins
ba239a474a [quartz] zero memory on bitmap creation
7 quartz/argb32/similar tests were showing failures due to 
random bits being set. The problem turned out to be that the 
initial test surface was not cleared before the similar surface 
was created by push_group. The problem behaviour is more obvious
if you run the tests with MallocScribble=1.

Fix this by calling memset after bitmap allocation; the multiplication
here cannot overflow since we already checked that in malloc_ab.
2007-11-18 20:30:49 +00:00
Brian Ewins
58e828a9a3 [quartz] fill with alpha for EXTEND_NONE
The implementation of EXTEND_NONE was not filling areas outside
the image with rgba(0,0,0,0). This showed up on the operator-source
test, the fix makes the quartz and image renderings identical.
2007-11-15 21:29:07 +00:00
Vladimir Vukicevic
39b8ddf079 [win32] Remove double-free in win32 font code in init_glyph_path
Fixes bug #13243.
2007-11-15 11:57:40 -08:00
Vladimir Vukicevic
50d5f5a4e6 [quartz] Fix gradients; the wrong color field was being used
The wrong color field was being used, effectively making gradients always
have transparent black as their color stops.
2007-11-15 11:56:56 -08:00
Brian Ewins
bcb0f57e5e [quartz] remove double malloc in dashing code.
fdash is reallocated without being released, and is
allocated at the wrong size too.
2007-11-14 01:50:34 +00:00
Brian Ewins
e6bc049465 [quartz] typo checking for malloc failure
The check after the malloc of cg_advances looked at the wrong
variable.
2007-11-13 00:43:59 +00:00
Brian Ewins
bb2674207c [quartz] fix leak in show_glyphs
In cairo_quartz_show_glyphs we may leak the source if
there is a failure to malloc the glyph arrays. Fix this.
2007-11-12 23:56:01 +00:00
Brian Ewins
7ad34c1bdc [quartz] fix for cairo_reset_clip() 2007-11-12 23:52:52 +00:00
Brian Ewins
717ccbcf0c Revert "[quartz] handle 0x0 surfaces."
This reverts commit 2fd50a7897.
Spoke too soon, quartz doesn't like creating those 0x0
images; while the tests pass, its putting warnings in the logs.
Reverting to make a better fix.
2007-11-12 23:51:39 +00:00
Brian Ewins
2fd50a7897 [quartz] handle 0x0 surfaces.
Some tests, like invalid-matrix, generate a 0x0 bitmap; in
the quartz backend this caused a nil surface to be returned,
whereas the tests expect a quartz surface. Other surfaces
return a backend-specific surface with a zero-sized bitmap,
quartz should do the same.

Fixes the tests ft-font-create-for-ft-face, get-and-set,
get-clip, invalid-matrix, line-width-zero, 
select-font-no-show-text, solid-pattern-cache-stress,
surface-finish-twice, and text-cache-crash.
2007-11-11 01:49:36 +00:00
Emmanuel Pacaud
0359ad6c8d Compilation warning suppression (char as array subscript).
cairo_path_op_t is a char, and can't be directly used as array subscript.
2007-11-11 00:18:19 +01:00
Emmanuel Pacaud
1b71af7e61 Fix _cairo_path_fixed_init_copy.
All the copied data buffers except the first one weren't completely
initialized (num_ops and num_points). That was the cause of the failure
of some vector surface tests, like random-intersections.
2007-11-11 00:14:34 +01:00
Emmanuel Pacaud
916d82586e [SVG] Indentation fixes. 2007-11-10 10:24:21 +01:00
Emmanuel Pacaud
8edc3ed485 Merge branch 'master' of git+ssh://emmanuel@git.cairographics.org/git/cairo 2007-11-10 10:10:50 +01:00
Emmanuel Pacaud
3bc8a8d1d0 [SVG] Remove spurious semicolon when emitting mask url. 2007-11-10 10:10:03 +01:00
Emmanuel Pacaud
b68968ffd1 [SVG] Fix opacity of combined stroke and fill.
When emitting combined stroke and fill, cairo SVG backend was using the opacity
two times, instead of using fill-opacity and stroke-opacity, leading to
incorrect output.

I've updated the mask test reference images for the SVG output, since it seems
there's a bug in librsvg when fill-opacity is used in the mask image.
I've checked the SVG output with batik, and it looks fine.
2007-11-10 10:07:12 +01:00
Vladimir Vukicevic
28412f780e [win32-printing] bail out early if we don't have anything to do in paint_surf 2007-11-09 12:50:45 -08:00
Vladimir Vukicevic
d72bb8c12e [win32] Fix FIXED_to_fixed when cairo's fixed format isn't 16.16 2007-11-09 12:50:45 -08:00
Vladimir Vukicevic
0901b83ca5 [win32] Don't use GetGlyphOutline on non-TrueType fonts
win32-glyph-metrics.patch: GetGlyphOutline only works on Truetype fonts,
so for non-Truetype fonts, assume no left or right bearing and use the
font ascent and descent for the glyph extents.
2007-11-09 12:50:45 -08:00