Commit graph

128 commits

Author SHA1 Message Date
Fred Kiefer
b5d10eade8 * Source/cairo/CairoFontEnumerator.m: Define FC_WEIGHT_ULTRABLACK
for old versions of fontconfig.
Patch by Richard Frith-Macdonald <rfm@gnu.org>


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@34035 72102866-910b-0410-8b05-ffd578937521
2011-10-20 09:15:58 +00:00
Eric Wasylishen
d7b7322723 * Source/cairo/GNUmakefile:
* Source/cairo/CairoContext.m:
* Source/cairo/CairoSurface.m:
* Source/cairo/XGCairoModernSurface.m:
* Headers/cairo/XGCairoModernSurface.h:
* Headers/cairo/CairoSurface.h: New cairo surface which uses
cairo_surface_create_similar to create a back buffer which
has an alpha channel, even if the X server doesn't support
surfaces with alpha. This new surface is also made the default
since this seems to be the recommended way to double buffer
with cairo.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@33978 72102866-910b-0410-8b05-ffd578937521
2011-10-13 21:37:44 +00:00
Eric Wasylishen
9e4b957085 * Source/cairo/CairoContext.m: revert the last change for now
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@33855 72102866-910b-0410-8b05-ffd578937521
2011-09-18 20:37:00 +00:00
Eric Wasylishen
9b930f8ec7 * Source/cairo/CairoContext.m: Switch to XGCairoSurface by default,
because it fixes the corrupted display problem reported by Riccardo
on 16-bit displays.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@33849 72102866-910b-0410-8b05-ffd578937521
2011-09-16 23:56:01 +00:00
Fred Kiefer
172dc48fe7 * Source/cairo/CairoGState.m (-saveClip, -restoreClip:,
-drawGradient:...): Check that the _ct isnt NULL.
* Source/cairo/CairoGState.m (doubleFromUserSpace,
  floatToUserSpace): Use correct types in these helper functions.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@33830 72102866-910b-0410-8b05-ffd578937521
2011-09-12 10:40:52 +00:00
Eric Wasylishen
ea5cc1646e * Source/cairo/CairoGState.m (-drawGState:...): Check that the source
context is non-NULL before calling cairo_get_target on it. Log a warning
when either the source context or target context is NULL.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@33828 72102866-910b-0410-8b05-ffd578937521
2011-09-12 00:46:15 +00:00
Eric Wasylishen
ee87a3db27 * Source/cairo/CairoGState.m (-drawGState:...): Use CAIRO_EXTEND_PAD
on the pattern to prevent blurred edges when scaling up.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@33759 72102866-910b-0410-8b05-ffd578937521
2011-08-17 05:47:18 +00:00
Eric Wasylishen
1858519713 * Source/cairo/CairoGState.m (-DPSstroke:): If the line width is
0, temporarily set it to 1 unit wide (in device space.) This
is an attempt at matching the behaviour of the setlinewidth
PostScript operator, which is supposed to interpret 0 as meaning
the thinnest line that the output device can draw.
Note that Quartz (and cairo) draw nothing with a line width of 0.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@33739 72102866-910b-0410-8b05-ffd578937521
2011-08-15 19:23:49 +00:00
Eric Wasylishen
f3149ce164 * Headers/cairo/CairoGState.h:
* Source/cairo/CairoGState.m: Remove most of the rounding code and
implementation of DPSstrokeadjust.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@33492 72102866-910b-0410-8b05-ffd578937521
2011-07-08 21:02:06 +00:00
Eric Wasylishen
3c80cf5c92 * Source/cairo/XGCairoSurface.m (-contentsOfScreen:inRect:):
Use the passed rect properly.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@33444 72102866-910b-0410-8b05-ffd578937521
2011-07-03 23:59:35 +00:00
Eric Wasylishen
9bc09976ee * Source/cairo/XGCairoSurface.m: Implementation of
-[GSDisplayServer contentsOfScreen:inRect:] for x11/cairo


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@33443 72102866-910b-0410-8b05-ffd578937521
2011-07-03 23:45:22 +00:00
Fred Kiefer
084e5ade90 Revert last change as gui is fixed now.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@33305 72102866-910b-0410-8b05-ffd578937521
2011-06-14 22:27:58 +00:00
Fred Kiefer
5a950060d0 * Source/cairo/CairoContext.m (-supportsDrawGState): Delegate to
gstate.
* Headers/cairo/CairoGState.h (-supportsDrawGState): Declare this method.
* Source/cairo/CairoGState.m (-supportsDrawGState): Only allow the
faster drawing operation when the clip can be represented as a
list of rectangles.
* Source/cairo/CairoGState.m (-copyWithZone:): Always free the
clip rectangle list.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@33289 72102866-910b-0410-8b05-ffd578937521
2011-06-13 12:34:52 +00:00
Eric Wasylishen
07638f13fc * Source/winlib/WIN32GState.m:
* Source/art/ARTGState.m:
* Source/cairo/CairoGState.m:
* Source/xlib/XGGState.m:
* Source/gsc/GSContext.m:
* Source/gsc/GSGState.m:
* Headers/gsc/GSGStateOps.h:
Add a new interface, GSShowGlyphsWithAdvances, which replaces
GSShowGlyphs as the primitive text drawing method.

None of the backends implement it properly yet; I simply renamed
the existing -GSShowGlyphs:: methods to -GSShowGlyphsWithAdvances:::,
so they currently ignore the glyph advances.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@33121 72102866-910b-0410-8b05-ffd578937521
2011-05-26 03:48:58 +00:00
Fred Kiefer
c03b2d3a3b Protect the name id.
Patch by Sebastian Reitenbach <sebastia@l00-bugdead-prods.de>


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@33065 72102866-910b-0410-8b05-ffd578937521
2011-05-19 07:37:29 +00:00
Eric Wasylishen
8b0d34990e * Undo the previous change and try a different approach..
just cache the character set in CairoFaceInfo, but load them
as needed as we were doing before.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@32987 72102866-910b-0410-8b05-ffd578937521
2011-05-05 20:05:13 +00:00
Eric Wasylishen
016af1f41c * Source/cairo/CairoFontEnumerator.m:
* Source/cairo/CairoFaceInfo (-characterSet): Remove the call to
FcFontMatch in -characterSet which was a big performace
bottleneck.
Instead load the character set data when enumerating all fonts in
CairoFontEnumerator.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@32986 72102866-910b-0410-8b05-ffd578937521
2011-05-05 19:18:43 +00:00
Eric Wasylishen
575901b00d back: c89 compat.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@32882 72102866-910b-0410-8b05-ffd578937521
2011-04-17 23:08:30 +00:00
Eric Wasylishen
8545154f67 back/cairo: CairoFontEnumerator.m: Replace -handleKey:selector:valueClass: and -handleKey:selector: methods with macros.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@32880 72102866-910b-0410-8b05-ffd578937521
2011-04-17 22:29:18 +00:00
Eric Wasylishen
88048d141c back/cairo: use Fontconfig for descriptor matching
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@32864 72102866-910b-0410-8b05-ffd578937521
2011-04-14 23:14:38 +00:00
Eric Wasylishen
dc80ca3aa0 back: implement coveredCharacterSet for CairoFontInfo
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@32716 72102866-910b-0410-8b05-ffd578937521
2011-03-28 04:19:41 +00:00
Eric Wasylishen
282a590ad5 core/back: replace objc_{malloc/free} with malloc/free
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@31629 72102866-910b-0410-8b05-ffd578937521
2010-11-18 20:28:15 +00:00
Fred Kiefer
b693e927c6 For XFT Also request spacing information.
Patch by Derek Fawcus <dfawcus@employees.org>.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@31109 72102866-910b-0410-8b05-ffd578937521
2010-08-10 19:21:31 +00:00
Fred Kiefer
7a8c2adea4 * Source/cairo/CairoGState.m
(-compositeGState:fromRect:toPoint:op:fraction:): Move the usage
of _ct and source->_ct after the check whether they are set.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@30588 72102866-910b-0410-8b05-ffd578937521
2010-06-06 19:56:35 +00:00
Quentin Mathe
b53fe57e7c Fixed many drawing issues (many ones being related to the flipping).
See bug report #27782

In particular, fixed -[NSImage drawXXX] and -[NSImage composite/dissolveXXX] 
methods to work exactly as Cocoa when the Cairo backend is used.
Added a new draw operator (in addition to composite) to the backend. Cairo is 
the only backend that implements it for now.
Eliminated as many flipping checks as possible.

Warning: Untested with the winlib backend. 
You must update, recompile and install both Back and Gui.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@30523 72102866-910b-0410-8b05-ffd578937521
2010-06-01 11:04:36 +00:00
Fred Kiefer
5253105797 * Source/cairo/CairoGState.m: Only use calls for
cairo_pattern_set_extend() on cairo > 1.6.0.
Patch suggested by Eric Wasylishen <ewasylishen@gmail.com>.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@29868 72102866-910b-0410-8b05-ffd578937521
2010-03-07 21:40:36 +00:00
Richard Frith-MacDonald
18ab944a93 update to avoid obsolete function
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@29844 72102866-910b-0410-8b05-ffd578937521
2010-03-05 06:52:53 +00:00
Fred Kiefer
92fdccd8d3 Adjust to the CGFloat change for NSFont
and NSAffineTransform done in base and gui.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@29689 72102866-910b-0410-8b05-ffd578937521
2010-02-20 16:33:30 +00:00
Wolfgang Lux
4311e19de6 Avoid unnecessary runtime check in the fix for #28590.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@29358 72102866-910b-0410-8b05-ffd578937521
2010-01-22 11:47:06 +00:00
Wolfgang Lux
4ea7b58019 Fix bug #28590.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@29357 72102866-910b-0410-8b05-ffd578937521
2010-01-22 08:16:50 +00:00
Eric Wasylishen
1c46dd6417 Cairo backend:
-DPSsetflat: and -DPScurrentflat should not have been transforming
the flatness value with the current transformation matrix.
The effect of this could be seen in the Apple BezierPathLab example;
zooming in on the circle caused it to look more and more like a
polygon.

Also set NSBezierPath default flatness to 0.6 to match OS X
(it was 1.0, which made circles look a bit rough)


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@29145 72102866-910b-0410-8b05-ffd578937521
2009-12-20 18:47:26 +00:00
Fred Kiefer
9a47060a5a Patch by Eric Wasylishen to set the pattern extend in the cairo backend.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@29122 72102866-910b-0410-8b05-ffd578937521
2009-12-14 14:05:32 +00:00
Fred Kiefer
ebfac7ae21 Set colour for cairo text drawing.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@28964 72102866-910b-0410-8b05-ffd578937521
2009-11-06 09:58:09 +00:00
Fred Kiefer
6a453d533c Correct -setColor:state: to handle alpha better.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@28957 72102866-910b-0410-8b05-ffd578937521
2009-11-04 21:56:49 +00:00
Fred Kiefer
2520a756ac Correct stroke colour handling.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@28948 72102866-910b-0410-8b05-ffd578937521
2009-11-03 22:52:28 +00:00
Fred Kiefer
c172ce04b1 Remove commented out code.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@28944 72102866-910b-0410-8b05-ffd578937521
2009-11-03 08:57:28 +00:00
Fred Kiefer
55a29294d2 Use the offset adjustment for cairo > 1.8 in the general case.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@28943 72102866-910b-0410-8b05-ffd578937521
2009-11-03 08:39:15 +00:00
Fred Kiefer
6653ef68cc Add simple gradient implementation for the cairo backend.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@28873 72102866-910b-0410-8b05-ffd578937521
2009-10-23 20:46:41 +00:00
Fred Kiefer
3c8eab0c49 Implement pattern colours for all backends.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@28850 72102866-910b-0410-8b05-ffd578937521
2009-10-19 14:17:45 +00:00
Fred Kiefer
15c9010eeb * Source/cairo/CairoFontEnumerator.m,
* Source/xlib/GSXftFontInfo.m: Use DejaVu as another fallback
  font, as Bitstream Vera and FreeSans are no longer supplied
  directly by Debian.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@28414 72102866-910b-0410-8b05-ffd578937521
2009-07-27 15:06:55 +00:00
Fred Kiefer
a9dae5b3a7 Patch for the cairo scrolling issue. This will need a lot of testing!
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@28389 72102866-910b-0410-8b05-ffd578937521
2009-07-10 08:11:39 +00:00
Fred Kiefer
0f7b2e89cb Finish rework of composite operators started four years ago.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@28313 72102866-910b-0410-8b05-ffd578937521
2009-05-31 19:46:28 +00:00
Fred Kiefer
4f3b8457a3 Correct the memory management of XWindowBuffer.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@28141 72102866-910b-0410-8b05-ffd578937521
2009-03-27 23:16:48 +00:00
Fred Kiefer
33ccb792b2 Correct bug in last change.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@27800 72102866-910b-0410-8b05-ffd578937521
2009-02-06 10:11:30 +00:00
Fred Kiefer
dac60cb4d2 Better handling of clip copying when the clip is not representable by cairo.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@27797 72102866-910b-0410-8b05-ffd578937521
2009-02-05 18:44:18 +00:00
Fred Kiefer
f99e97c43e Implement new method -setPartentWindow:forChildWindow: for X and
Windows.

Adjust y coordinate of point in compositeGState:... for cairo. This
solves bug #24709. 


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@27718 72102866-910b-0410-8b05-ffd578937521
2009-01-29 09:32:32 +00:00
Nicola Pero
39076b64a9 Removed GNUSTEP_CORE_SOFTWARE=YES from makefiles and instead set PACKAGE_NAME=gnustep-back
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@27349 72102866-910b-0410-8b05-ffd578937521
2008-12-19 13:05:05 +00:00
Nicola Pero
417a0e2cbf Set GNUSTEP_CORE_SOFTWARE to YES so that gnustep-back is installed by default in SYSTEM if gnustep-make has been configured with --disable-packages
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@27335 72102866-910b-0410-8b05-ffd578937521
2008-12-18 18:51:49 +00:00
Fred Kiefer
b644571f1a Correct test for the need of an image conversion.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@27279 72102866-910b-0410-8b05-ffd578937521
2008-12-11 21:03:51 +00:00
Richard Frith-MacDonald
aeddc7b908 Fix #24671
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@27192 72102866-910b-0410-8b05-ffd578937521
2008-12-02 22:51:34 +00:00