Commit graph

22 commits

Author SHA1 Message Date
Vladimir Vukicevic
22587f57bd Import Qt backend by Mozilla
Written by Vladimir Vukicevic to enable integration with Qt embedded
devices, this backend allows cairo code to target QPainter, and use
it as a source for other cairo backends.

This imports the sources from mozilla-central:
http://mxr.mozilla.org/mozilla-central/find?text=&kind=text&string=cairo-qpainter
renames them from cairo-qpainter to cairo-qt, and integrates the patch
by Oleg Romashin:
https://bugs.freedesktop.org/attachment.cgi?id=18953

And then attempts to restore 'make check' to full functionality.

However:
 - C++ does not play well with the PLT symbol hiding, and leaks into the
   global namespace. 'make check' fails at check-plt.sh

 - Qt embeds a GUI into QApplication which it requires to construct any
   QPainter drawable, i.e. used by the boilerplate to create a cairo-qt
   surface, and this leaks fonts (cairo-ft-fonts no less) causing assertion
   failures that all cairo objects are accounted for upon destruction.

[Updated by Chris Wilson]
Acked-by: Jeff Muizelaar <jeff@infidigm.net>
Acked-by: Carl Worth <cworth@cworth.org>
2009-06-16 11:03:46 +01:00
Chris Wilson
e5727e20f5 Expose _cairo_null_surface_create() via a test surface
Using a null surface is a convenient method to measure the overhead of the
performance testing framework, so export it although as a test-surface so
that it will only be available in development builds and not pollute
distributed libraries.
2009-06-15 12:03:37 +01:00
Chris Wilson
c488b33644 [test] Create a new fallback surface to exercise 16-bit paths.
Add a variation of test-fallback-surface that forces the use of a 16-bit
pixman format code instead of the standard 32-bit types. This creates an
image surface akin to the fallbacks used with low bit-depth xservers.
2009-05-05 21:17:11 +01:00
Søren Sandmann
e29103c081 [region] Move region function prototypes to cairo.h along with helper types.
Move struct _cairo_region to cairoint.h and delete
cairo-region-private.h. Delete cairo_private from the function
definitions that had it.
2009-03-28 18:02:57 -04:00
M Joonas Pihlaja
e380beae53 [sdl] Remove new backend.
The SDL backend makes invalid assumptions about SDL_Surface locking
semantics and doesn't deal correctly with the unpremultiplied pixel
format supported by SDL.  Removed as per discussion on the mailing list.

http://lists.cairographics.org/archives/cairo/2009-February/016595.html
2009-02-16 14:01:43 +02:00
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
M Joonas Pihlaja
7994fc06ad [cairo-spans] New cairo_tor_scan_converter_t.
Imports a new polygon scan converter implementation from the
repository at

http://cgit.freedesktop.org/~joonas/glitter-paths/

Glitter paths is a stand alone polygon rasteriser derived from David
Turner's reimplementation of Tor Anderssons's 15x17 supersampling
rasteriser from the Apparition graphics library.  The main new feature
in this implementation is cheaply choosing per-scan line between doing
fully analytical coverage computation for an entire row at a time
vs. using a supersampling approach.
2008-12-06 14:04:36 +02:00
M Joonas Pihlaja
948c3526dc [cairo-spans] New abstract types for scan converting polygons.
A cairo_span_renderer_t implementation can be provided by a surface if
it wants to render paths as horizontal spans of the alpha component of
a mask.  Its job is to composite a source pattern to the destination
surface when given spans of alpha coverage for a row while taking care
of backend specific clipping.

A cairo_scan_converter_t takes edges of a flattened path and generates
spans for a span renderer to render.
2008-12-06 14:04:35 +02:00
Adrian Johnson
5de1e4de93 Move cairo-jpeg-info.c to cairo-image-info.c
Other image formats will be added to the same file.
2008-11-23 18:33:58 +10:30
Chris Wilson
a856371bef Add CairoScript backend.
A new meta-surface backend for serialising drawing operations to a
CairoScript file. The principal use (as currently envisaged) is to provide
a round-trip testing mechanism for CairoScript - i.e. we can generate
script files for every test in the suite and check that we can replay them
with perfect fidelity. (Obviously this does not provide complete coverage
of CairoScript's syntax, but should give reasonable coverage over the
operators.)
2008-11-13 11:36:54 +00:00
Chris Wilson
f5965cb7d6 [in-fill] Avoid tessellation by counting number of edge crossing to -∞
Benjamin Otte reports that in one particular benchmark cairo_in_fill() is
a hotspot in the profile. Currently we tessellate the entire path and then
search for a containing trapezoid. This is very expensive compared to the
simple method of counting the number of edge crossing between the point of
interest and x=-∞. For example, this speeds tessellate-256 up by almost 3
orders of magnitude.
2008-11-06 00:27:23 +00:00
Adrian Johnson
3707178fa4 PDF: Implement JPEG image embedding 2008-11-02 20:12:29 +10:30
Chris Wilson
ef9e0a5d1d [tessellator] Use a combsort for sorting the event queue.
In my experiments using cairo-perf, the inlined combsort is ~20% quicker
than the library qsort.
2008-10-30 19:08:24 +00:00
Chris Wilson
cf072c7203 [sdl] Add new backend.
Add a new backend to allow easy interoperability with the Simple
DirectMedia Layer.
2008-10-30 17:04:53 +00:00
Jeff Muizelaar
83162360a4 Fix quratz_image typo in Makefile.sources. 2008-10-15 10:34:12 -04:00
Behdad Esfahbod
e3f9e40df7 Fix residues of the Makefile.*.config Makefile.*.features renaming
They just don't seem to want to die...
2008-09-29 11:49:50 -04:00
Behdad Esfahbod
d5a998387b Add an internal font face
The font data and rendering is adapted from Keith Packard's Twin
window system.  The hinting stuff is not ported yet, but hey, it renders!

The implementation uses user fonts, and the user font backend is modified
to use this font face (which we call "twin" font face internally) when
a toy font is needed.

The font face layer is then modified to use this font if:

  - The toy font face "cairo" is asked for, or

  - No native font backend is available, or

  - The preferred native font backend fails to return a font with
    STATUS_UNSUPPORTED.  No font backend does this right now but
    the idea is to change FreeType to return it if no fonts found
    on the system.

We also allow building with no font backends now!

The new doc/tutorial/src/twin.c file tests the twin face at various
sizes.
2008-09-25 19:25:11 -04:00
Behdad Esfahbod
a91101df31 [Makefile.sources] Remove mention of cairo-features-win32.h
That file is not generated anymore.  Instead, cairo-features.h is
generated from Makefile.win32 on the fly.
2008-09-24 17:23:28 -04:00
Behdad Esfahbod
45609d8400 Add cairo-system.c for platform system-specific code
This is where DLL initialization/finalization should be done for example.
Moved the one for win32.  For OS/2 just left a comment as the code needs
more work.

This change simplifies building shared and static libraries in the win32
makefiles.
2008-09-20 18:26:27 -04:00
Behdad Esfahbod
6892daf77c Create cairo-features-win32.h 2008-09-16 03:58:20 -04:00
Behdad Esfahbod
93325a3f08 [configure.ac.enable] Cleanup Makefile.*.config generation 2008-09-11 19:12:31 -04:00
Behdad Esfahbod
7ad076442d Rename src/*.mk to src/Makefile.*
Namely:

	src/Sources.mk      -> src/Makefile.sources
	src/Config.mk       -> src/Makefile.am.config
	src/Config.mk.win32 -> src/Makefile.win32.config
2008-09-04 22:23:42 -04:00
Renamed from src/Sources.mk (Browse further)