Commit graph

43 commits

Author SHA1 Message Date
David Reveman
a97f4cce5e Removed surface backend functions set_matrix, set_filter and set_repeat 2005-03-03 18:20:28 +00:00
Carl Worth
dcfb0d8a2b Switch from broken cworth@isi.edu address to canonical cworth@cworth.org address. 2005-02-22 11:35:03 +00:00
Carl Worth
c8a98b109a Fix y offset to use dst_y instead of dst_x, (caught by David Reveman). 2005-02-21 08:17:42 +00:00
Owen Taylor
86c8755e59 configure.in src/cairo-features.h.in: Add a check for the Windows platform and --enable-win32. Also add some (currently always off) stubs for native Win32 fonts.
Make building the PDF backend conditional on having FreeType.
src/Makefile.am src/cairo_win32_surface.c src/cairo_win32_font.c src/cairo-win32.h: Add a Win32 backend using GDI and software fallbacks Font code is not yet there yet, but it works with the fontconfig backend.
src/cairo_gdip_font.cpp src/cairo_gdip_surface.cpp: Remove remnants of a GDI+ based backend.
Prefer platform-specific font backends to the fontconfig backend.
2005-01-31 16:11:37 +00:00
Owen Taylor
26148a1d15 src/cairoint.h src/cairo_image_surface.c src/cairo_pdf_surface.c src/cairo_png_surface.c src/cairo_surface.c src/cairo_xlib_surface.c: Replace the get_image()/set_image() backend operations with a more specific {acquire,release}_{source,dest}_image() and clone_similar().
src/cairoint.h src/cairo_pattern.c: Replace _cairo_pattern_get_surface() with a _cairo_pattern_begin_draw()/_cairo_pattern_end_draw() pair.
Save the format for which an image is created so we can access it later. (Needed for the _cairo_xlib_surface_clone_similar())
src/cairoint.h src/cairo_image_surface.c: Add _cairo_surface_is_image().
Add CAIRO_OK(status) to check for CAIRO_STATUS_SUCCESS.
In the absence of of RENDER, make cairo_xlib_surface_create_similar() return an image surface.
Don't try to use RENDER to composite glyphs in the absence of the RENDER extension.
2005-01-31 08:50:22 +00:00
Kristian Høgsberg
17ec6f1482 The overall idea of this rewrite is that we want to pass the source pattern all the way down into the backends. The motivation for this is that not all backends want a surface for the source operand, and by passing the pattern down, backends can choose to convert it to a surface if they need that.
The patch removes the create_surface function pointer from the surface vtable and moves much of that code into a couple of helper functions. The composite, compsite_trapezoids, and show_glyphs backend functions are updated to take a cairo_pattern_t instead of a surface as the source.
Change these functions to not create a surface for the pattern and just pass the pattern down to the backend functions.
New function to translate a set of trapezoids.
Break out the code to adjust and restore surface transformation and repeat settings into _cairo_pattern_prepare_surface and _cairo_pattern_restore_surface.
Split cairo_pattern_create_for_surface into an init function and a create function.
Utility functions to create a surface from a pattern.
Update these backends to work with the new pattern API. Glitz work by David Reveman.
Update these to pass through the new set of args.
Update this reference image as we now render it correctly.
2005-01-27 10:46:20 +00:00
Carl Worth
bf8374dba2 Convert all files to utf-8. Add copyright information to cairo_png_surface.c. 2004-10-21 18:40:50 +00:00
Carl Worth
0f3ce6a240 Add the MPL as a new license option, in addition to the LGPL. 2004-09-04 06:38:34 +00:00
Carl Worth
e5afa03605 Fix to explicitly refer to GNU Lesser Public License 2.1 rather than the Library Public License version 2 or 'any later version' 2004-08-02 17:04:00 +00:00
Carl Worth
d5e92dd1c8 Change from MIT license to LGPL. 2004-08-02 13:13:28 +00:00
Carl Worth
f82f1ba380 These two fixes are from David Reveman <c99drn@cs.umu.se>:
Move NULL test from create_similar_scratch to create_similar_solid.
Fix for when surface->backend != image->backend, but the backend does use images for similar surfaces.
2004-05-28 12:47:00 +00:00
Keith Packard
41f549a870 Add WARN_CFLAGS, autodetection for 64/128 bit ints and cairo_wideint.[ch]
Check status return from _cairo_gstate_glyph_extents
Quiet compiler warnings about uninitialized variables
Switch to alternate exact line intersection code.
Add 64/128-bit wide integer arithmetic.
Switch to stdint.h types (and new wide types).
2004-05-28 12:37:15 +00:00
David Reveman
cdad647211 Added glyph caching 2004-05-24 02:28:05 +00:00
David Reveman
cdf8739c09 Removed pattern_offset 2004-05-11 11:20:06 +00:00
David Reveman
f870f16e98 Converted shading routines to use fixed point values. 2004-04-25 04:02:37 +00:00
Carl Worth
c82011dddd Fixed several function prototype mismatches between internal header file and implementation (thanks to Carlos Romero and gcc-3.4). 2004-04-23 10:08:53 +00:00
David Reveman
e172b7cec7 Fixed pattern source offset 2004-04-22 02:22:36 +00:00
David Reveman
73df0e81cb Added OpenGL surface backend 2004-04-09 14:19:47 +00:00
David Reveman
e309090d2a Added new pattern API 2004-04-06 09:36:12 +00:00
Graydon Hoare
94551db67c Add.
finalize and copy clip.region. Detect rectangular clips and push down to backend.
Add set_clip_region slot. (cairo_clip_rec_t): Add region slot. (_cairo_gstate_init_clip) (_cairo_surface_set_clip_region): Prototype.
Add.
Add.
Add.
not implemented.
2004-03-19 15:47:25 +00:00
Jamey Sharp
9e793ee5fc Fixed for latest XCB API. XCB headers can co-exist with Xlib headers now, so Cairo may be compiled with both backends in the same library. http://freedesktop.org/Software/XCBCompletedTasks#17_Mar_2004 2004-03-17 09:44:26 +00:00
Graydon Hoare
b66bbf4879 New "filter" field.
New function. (cairo_surface_set_filter): Store filter in surface.
Declare.
Copy filter setting. (_cairo_xlib_surface_set_filter): Use constants from Xrender.h
2004-01-30 14:44:18 +00:00
Carl Worth
7765a3c676 Add support for cairo_copy_page. Fixes so PS output can be more than one page. Bump version to 0.1.11 for new cairo_copy_page. 2003-11-03 19:17:31 +00:00
Carl Worth
c6255f9c29 Implemented preliminary PostScript output support. Added cairo_show_page. Bumped version number to 0.1.10 2003-10-31 21:30:35 +00:00
Carl Worth
32df4d217d Moved all libic-related drawing into cairo_image_surface.c 2003-10-31 10:41:37 +00:00
Carl Worth
859bfd03a6 Rename gstate->ppm to gstate->pixels_per_inch. Add new pixels_per_inch to the surface backend. 2003-10-28 12:18:29 +00:00
Carl Worth
8bb3f7664d Drop cairo_surface_create_similar_solid 2003-10-28 12:15:03 +00:00
Carl Worth
01378dab3e Fix bug from previous commit. Must check for NULL backend function pointers before calling them. 2003-10-28 12:13:35 +00:00
Carl Worth
9d052aa9ca Cleanup of surface->backend interface. Better type-safety and more consistent return-value handling. 2003-10-27 18:40:55 +00:00
Carl Worth
2c9d1913cc Fixed copyright attribution to refer to "University of Southern California 2003-10-23 07:47:29 +00:00
Jamey Sharp
973ee89983 Virtualized the font and surface backend implementations. 2003-09-30 18:56:22 +00:00
Carl Worth
6b582a836a Fix to delay XFreePixmap until cairo_surface_destroy. 2003-09-30 07:58:58 +00:00
Carl Worth
9edacaf780 Bugfix from Graydon Hoare. 2003-09-29 11:55:56 +00:00
Carl Worth
d3db983ab2 Fixed massive pixmap leak 2003-09-16 10:28:46 +00:00
Carl Worth
7e46e8e6ca Add cairo_reference and cairo_surface_reference 2003-09-16 06:45:19 +00:00
Carl Worth
ee4bb02015 Force explicit dependency on Xrender >= 0.6. Make _cairo_x11_surface_put_image static. 2003-09-15 13:17:32 +00:00
Carl Worth
1154ac5b59 Don't try to create depth-32 pixmaps on non-Render servers. Fix massive memory leask in _cairo_surface_push_image. 2003-09-15 07:29:44 +00:00
Carl Worth
e540d4c44f Updated calls to slim_hidden_def to track changes in slim 0.2.0 2003-09-09 17:38:10 +00:00
Carl Worth
5b5c172803 Preliminary support for running Cairo with X servers without the Render extension. This is still horribly slow. Removed many uses of X-specific macros, (eg. XDoubleToFixed) 2003-09-05 15:29:49 +00:00
Carl Worth
44b3c4ca78 Optimized _cairo_surface_composite for compositing local memory surface with an X11 server surface. 2003-08-29 17:57:08 +00:00
Richard Henderson
9289e8a77a Depend on slim.
Check for slim.
Include slim_{export,import}.h as needed; mark all symbols __external_linkage.
Include slim_internal.h; mark all symbols __internal_linkage. Provide slim_hidden_proto symbols as needed.
Provide slim_hidden_def symbols as needed.
Mark static. (cairo_traps_add_trap_from_points): Likewise.
2003-07-31 22:41:44 +00:00
Carl Worth
e97cfd5eae Made all changes necessary to abandon the Xc library, (sucking the functionality up into cairo_surface_t instead). Eliminated most of the remaining X datatypes (XFixed, XPointFixed, XLineFixed, XTrapezoid). Fixed some numerical problems relating to pen initialization and intersection calculation. 2003-07-30 08:30:50 +00:00
Carl Worth
dc1e96ae35 Renamed everything from Xr* to cairo_* 2003-07-18 11:34:19 +00:00