cairo/src
Chris Wilson bf62798b12 [cairo-compiler-private.h] Divert popen to _popen for MSVC
Microsoft uses _popen instead of popen - required to build the
boilerplate but not actually used on Windows (by default)!
2008-09-10 18:21:50 +01:00
..
.gitignore Rename src/*.mk to src/Makefile.* 2008-09-04 22:23:42 -04:00
cairo-analysis-surface-private.h Add CAIRO_INTERNAL_SURFACE_TYPE_NULL and cairo_nul_surface_create() 2008-05-09 15:54:19 +02:00
cairo-analysis-surface.c Add new public API cairo_surface_has_show_text_glyphs() 2008-08-18 14:54:21 -04:00
cairo-arc-private.h Add cairo_private to several function prototypes that were missing it. 2005-08-09 13:01:14 +00:00
cairo-arc.c Remove some bogus XXX marks 2008-05-28 19:10:09 -04:00
cairo-array.c Fix newly detected doc syntax issues 2008-06-01 18:46:45 -04:00
cairo-atomic-private.h Cleanup configure.in macros 2008-09-04 16:08:41 -04:00
cairo-atomic.c Cleanup configure.in macros 2008-09-04 16:08:41 -04:00
cairo-base85-stream.c Fix now-detected doc formatting issues 2008-06-01 19:14:13 -04:00
cairo-bentley-ottmann.c Bug: tessellator sometimes ends rightmost trapezoids too late 2008-06-18 18:35:42 +03:00
cairo-beos-surface.cpp Fix now-detected doc formatting issues 2008-06-01 19:14:13 -04:00
cairo-beos.h Use #include "cairo-*." instead of #include <cairo-*.h> 2008-06-23 00:30:04 -04:00
cairo-cache-private.h [doc] Stricter syntax check for type names, update test 2008-01-28 22:10:20 -05:00
cairo-cache.c [cairo-cache] Fixup doc comment. 2008-08-17 12:13:59 +01:00
cairo-cff-subset.c Revamp the build system. 2008-09-02 20:24:08 -04:00
cairo-clip-private.h Revamp the build system. 2008-09-02 20:24:08 -04:00
cairo-clip.c [cairo-clip] Dead store. 2008-08-17 14:33:38 +01:00
cairo-color.c [cairo-color] Only compare the shorts for equality. 2007-05-05 12:33:29 +01:00
cairo-compiler-private.h [cairo-compiler-private.h] Divert popen to _popen for MSVC 2008-09-10 18:21:50 +01:00
cairo-debug.c Rename _cairo_font_reset_static_data to _cairo_font_face_reset_static_data 2008-06-22 15:15:44 -04:00
cairo-deflate-stream.c Fix now-detected doc formatting issues 2008-06-01 19:14:13 -04:00
cairo-deprecated.h [cairo-deprecated.h] Remove mention of cairoint.h from public header 2008-05-09 15:54:10 +02:00
cairo-directfb-surface.c [dfb] fix crashes due to cached glyphs going away during operation 2008-08-09 22:10:10 -07:00
cairo-directfb.h Use #include "cairo-*." instead of #include <cairo-*.h> 2008-06-23 00:30:04 -04:00
cairo-features-win32.h Move version number to src/cairo-version.h 2008-08-28 17:28:08 -04:00
cairo-features.pc.in More fixes for pkgconfig files 2008-09-10 12:41:57 -04:00
cairo-fixed-private.h [cairo-fixed] Implement _cairo_fixed_mul_div() 2008-05-15 20:02:33 -04:00
cairo-fixed-type-private.h Change cairo's fixed-point format from 16.16 to 24.8 2008-02-27 15:08:18 -08:00
cairo-fixed.c [fixpt] Make fixed point methods static inline and generic 2007-07-18 22:45:21 +02:00
cairo-font-face.c Add toy font constructor and getters 2008-08-08 03:01:14 -04:00
cairo-font-options.c [cairo-font-options] Add private alias for set_lcd_filter() 2008-08-06 00:36:47 +01:00
cairo-freelist-private.h Revamp the build system. 2008-09-02 20:24:08 -04:00
cairo-freelist.c [src] Make sure all source files #include "cairoint.h" as their first include 2007-04-03 20:28:11 -04:00
cairo-ft-font.c Check that lvalue of BITSWAP8() is a uint8_t. 2008-09-01 15:36:34 +01:00
cairo-ft-private.h Use #include "cairo-*." instead of #include <cairo-*.h> 2008-06-23 00:30:04 -04:00
cairo-ft.h Use #include "cairo-*." instead of #include <cairo-*.h> 2008-06-23 00:30:04 -04:00
cairo-glitz-private.h [slim] hide cairo_glitz_surface_create() (#8551) 2006-10-08 17:07:17 -04:00
cairo-glitz-surface.c [cairo-surface] Remove optional pattern argument from create_similar_solid() 2008-06-19 21:06:07 -04:00
cairo-glitz.h Use #include "cairo-*." instead of #include <cairo-*.h> 2008-06-23 00:30:04 -04:00
cairo-gstate-private.h Remove include of cairoint.h from *-private.h header files. 2007-08-23 16:13:04 -07:00
cairo-gstate.c Add new public API cairo_surface_has_show_text_glyphs() 2008-08-18 14:54:21 -04:00
cairo-hash-private.h Move GCC attributes wrapping into a separate header. 2007-09-25 16:29:54 +01:00
cairo-hash.c Fix newly detected doc syntax issues 2008-06-01 18:46:45 -04:00
cairo-hull.c [cairo-hull] Attempt to allocate vertices on stack. 2008-06-13 21:34:41 +01:00
cairo-image-surface.c Move version number to src/cairo-version.h 2008-08-28 17:28:08 -04:00
cairo-lzw.c [src/check-doc-syntax.sh] Fix some bugs in the check and fix errors found 2008-05-09 15:54:04 +02:00
cairo-malloc-private.h [malloc] Check for integer overflow when realloc'ing. 2007-10-04 00:42:29 +01:00
cairo-matrix.c Rename _cairo_matrix_compute_scale_factors to _cairo_matrix_compute_basis_scale_factors 2008-08-27 20:08:49 -04:00
cairo-meta-surface-private.h [meta-surface] Implement show_text_glyphs; Remove show_glyphs 2008-06-26 17:15:42 -04:00
cairo-meta-surface.c [meta] Use the pre-computed device_transform_inverse. 2008-08-07 23:54:25 +01:00
cairo-misc.c Revamp the build system. 2008-09-02 20:24:08 -04:00
cairo-mutex-impl-private.h Revamp the build system. 2008-09-02 20:24:08 -04:00
cairo-mutex-list-private.h Cleanup configure.in macros 2008-09-04 16:08:41 -04:00
cairo-mutex-private.h Revamp the build system. 2008-09-02 20:24:08 -04:00
cairo-mutex-type-private.h Revamp the build system. 2008-09-02 20:24:08 -04:00
cairo-mutex.c [cairo-mutex] Prepare mutex infrastructure for adding mutex debugging facilities 2008-05-27 05:11:00 -04:00
cairo-os2-private.h Use #include "cairo-*." instead of #include <cairo-*.h> 2008-06-23 00:30:04 -04:00
cairo-os2-surface.c [OS/2] Fix build 2008-07-25 11:19:11 -04:00
cairo-os2.h Use #include "cairo-*." instead of #include <cairo-*.h> 2008-06-23 00:30:04 -04:00
cairo-output-stream-private.h Revamp the build system. 2008-09-02 20:24:08 -04:00
cairo-output-stream.c [ps] Mark the hex data as unsigned char. 2008-08-26 23:02:41 +01:00
cairo-paginated-private.h Add paginated surface backend function _set_fallback_images_required 2008-07-08 21:12:54 +09:30
cairo-paginated-surface-private.h Remove include of cairoint.h from *-private.h header files. 2007-08-23 16:13:04 -07:00
cairo-paginated-surface.c Add new public API cairo_surface_has_show_text_glyphs() 2008-08-18 14:54:21 -04:00
cairo-path-bounds.c [cairo-path-bounds] _cairo_path_fixed_bounds() can fail... 2008-02-27 09:47:35 +00:00
cairo-path-fill.c [quartz] Optimize path handling where possible 2008-02-25 21:06:23 -05:00
cairo-path-fixed-private.h Revamp the build system. 2008-09-02 20:24:08 -04:00
cairo-path-fixed.c Fix now-detected doc formatting issues 2008-06-01 19:14:13 -04:00
cairo-path-private.h [cairo-path] Make _cairo_path_nil static. 2007-10-30 10:58:16 +00:00
cairo-path-stroke.c [matrix] Prefer a return parameter for _compute_determinant(). 2008-08-08 09:11:10 +01:00
cairo-path.c [doc] Replace 'NOTE' by 'Note' and add it to test 2008-01-28 21:53:44 -05:00
cairo-pattern.c [pattern] Unbounded patterns should have infinite extents. 2008-08-11 20:43:14 +01:00
cairo-pdf-operators-private.h Revamp the build system. 2008-09-02 20:24:08 -04:00
cairo-pdf-operators.c Revamp the build system. 2008-09-02 20:24:08 -04:00
cairo-pdf-surface-private.h Add show_text_glyphs to PDF surface 2008-06-29 19:55:41 +09:30
cairo-pdf-surface.c Check that lvalue of BITSWAP8() is a uint8_t. 2008-09-01 15:36:34 +01:00
cairo-pdf.h Use #include "cairo-*." instead of #include <cairo-*.h> 2008-06-23 00:30:04 -04:00
cairo-pen.c [matrix] Prefer a return parameter for _compute_determinant(). 2008-08-08 09:11:10 +01:00
cairo-png.c [test] Cache last output and compare next time. 2008-08-20 23:56:56 +01:00
cairo-polygon.c Enlarge the embedded arrays to eliminate frequent allocations. 2008-06-13 21:34:42 +01:00
cairo-private.h [cairo] Cache freed gstates. 2008-06-13 21:34:41 +01:00
cairo-ps-surface-private.h [ps] Use a color_t rather than open-code. 2008-09-06 09:10:30 +01:00
cairo-ps-surface.c [ps] Set used level to 3 only if we use native gradients. 2008-09-07 15:03:58 +01:00
cairo-ps.h Use #include "cairo-*." instead of #include <cairo-*.h> 2008-06-23 00:30:04 -04:00
cairo-quartz-font.c Rename _cairo_matrix_compute_scale_factors to _cairo_matrix_compute_basis_scale_factors 2008-08-27 20:08:49 -04:00
cairo-quartz-image-surface.c [quartz] move _cairo_quartz_create_cgimage to cairo-quartz-surface.c 2008-09-03 15:34:40 -07:00
cairo-quartz-image.h Use #include "cairo-*." instead of #include <cairo-*.h> 2008-06-23 00:30:04 -04:00
cairo-quartz-private.h Use #include "cairo-*." instead of #include <cairo-*.h> 2008-06-23 00:30:04 -04:00
cairo-quartz-surface.c [quartz] move _cairo_quartz_create_cgimage to cairo-quartz-surface.c 2008-09-03 15:34:40 -07:00
cairo-quartz.h Use #include "cairo-*." instead of #include <cairo-*.h> 2008-06-23 00:30:04 -04:00
cairo-rectangle.c [cairo-rectangle] Add new convenience functions for working with cairo_box_t 2008-05-09 15:54:11 +02:00
cairo-reference-count-private.h Revamp the build system. 2008-09-02 20:24:08 -04:00
cairo-region-private.h Revamp the build system. 2008-09-02 20:24:08 -04:00
cairo-region.c Use 32 bit pixman regions for cairo_region_t 2008-06-10 18:09:00 -04:00
cairo-scaled-font-private.h [cairo-scaled-font] Clean up recent locking changes 2008-05-25 01:51:05 -04:00
cairo-scaled-font-subsets-private.h Revamp the build system. 2008-09-02 20:24:08 -04:00
cairo-scaled-font-subsets.c [scaled-fonts] Cleanup a couple of valgrind warnings. 2008-09-03 16:33:49 +01:00
cairo-scaled-font.c Check that lvalue of BITSWAP8() is a uint8_t. 2008-09-01 15:36:34 +01:00
cairo-skiplist-private.h [cairo-skiplist] Use one random number per insertion, instead of two 2007-04-09 19:39:50 -04:00
cairo-skiplist.c [cairo-error] Clean up all the warnings and missing _cairo_error() calls. 2007-10-04 13:31:44 +01:00
cairo-slope.c Remove _cairo_slope_[counter_]clockwise 2008-02-20 04:04:04 -08:00
cairo-spline.c [cairo-spline] Eliminate redundant _cairo_fixed_to_double(). 2007-11-01 22:42:34 +00:00
cairo-stroke-style.c Do correct calculation of pen dimensions for stroke optimization 2008-02-06 13:07:13 -08:00
cairo-surface-fallback-private.h Revert "[cairo-gstate] Avoid copying untransformed glyphs." 2007-08-31 16:53:21 +01:00
cairo-surface-fallback.c Allocate the correct pattern type on the stack. 2008-06-13 21:37:58 +01:00
cairo-surface-private.h [cairo-atomic] Rewrite reference counting using atomic ops. 2007-09-25 16:29:54 +01:00
cairo-surface.c Add new public API cairo_surface_has_show_text_glyphs() 2008-08-18 14:54:21 -04:00
cairo-svg-surface-private.h Remove include of cairoint.h from *-private.h header files. 2007-08-23 16:13:04 -07:00
cairo-svg-surface.c Check that lvalue of BITSWAP8() is a uint8_t. 2008-09-01 15:36:34 +01:00
cairo-svg.h Use #include "cairo-*." instead of #include <cairo-*.h> 2008-06-23 00:30:04 -04:00
cairo-traps.c [cairo-traps] Fix overflow in traps_path code 2008-05-15 20:03:05 -04:00
cairo-truetype-subset-private.h Revamp the build system. 2008-09-02 20:24:08 -04:00
cairo-truetype-subset.c [scaled-fonts] Cleanup a couple of valgrind warnings. 2008-09-03 16:33:49 +01:00
cairo-type1-fallback.c Revamp the build system. 2008-09-02 20:24:08 -04:00
cairo-type1-private.h Revamp the build system. 2008-09-02 20:24:08 -04:00
cairo-type1-subset.c [type1] Allocate the temporary subsetter on the stack. 2008-09-06 08:14:43 +01:00
cairo-type3-glyph-surface-private.h Revamp the build system. 2008-09-02 20:24:08 -04:00
cairo-type3-glyph-surface.c Revamp the build system. 2008-09-02 20:24:08 -04:00
cairo-types-private.h [ps] Use a color_t rather than open-code. 2008-09-06 09:10:30 +01:00
cairo-unicode.c [unicode] Add _cairo_utf8_get_char_validated() 2008-08-08 03:01:16 -04:00
cairo-user-font-private.h Revamp the build system. 2008-09-02 20:24:08 -04:00
cairo-user-font.c [user-font] Propagate status return. 2008-09-02 09:17:33 +01:00
cairo-version.c Some nasty tracks to make changing version number not cause a total rebuild 2008-08-28 18:18:23 -04:00
cairo-version.h Some nasty tracks to make changing version number not cause a total rebuild 2008-08-28 18:18:23 -04:00
cairo-wideint-private.h [cairo-fixed/wideint-private.h] Split out typedefs from prototypes 2008-01-20 02:55:07 -05:00
cairo-wideint-type-private.h Ensure ranges of wideint types are always defined. 2008-08-17 14:08:28 +01:00
cairo-wideint.c cairo-wideint: Fix to eliminate comparison of signed and unsigned values 2007-01-20 02:01:29 -08:00
cairo-win32-font.c Rename _cairo_matrix_compute_scale_factors to _cairo_matrix_compute_basis_scale_factors 2008-08-27 20:08:49 -04:00
cairo-win32-printing-surface.c Win32-printing: Fix Type 1 font printing so fallback is not used 2008-08-10 14:24:16 +09:30
cairo-win32-private.h Win32-printing: Fix Type 1 font printing so fallback is not used 2008-08-10 14:24:16 +09:30
cairo-win32-surface.c Win32: Fix uninitialized variable 2008-08-12 07:34:24 +09:30
cairo-win32.h Use #include "cairo-*." instead of #include <cairo-*.h> 2008-06-23 00:30:04 -04:00
cairo-xcb-surface.c Allocate the correct pattern type on the stack. 2008-06-13 21:37:58 +01:00
cairo-xcb-xrender.h Use #include "cairo-*." instead of #include <cairo-*.h> 2008-06-23 00:30:04 -04:00
cairo-xcb.h Use #include "cairo-*." instead of #include <cairo-*.h> 2008-06-23 00:30:04 -04:00
cairo-xlib-display.c [xlib] Keep a pointer to the cairo_xlib_display_t on the surface. 2008-09-02 10:49:12 +01:00
cairo-xlib-private.h [xlib] Keep a pointer to the cairo_xlib_display_t on the surface. 2008-09-02 10:49:12 +01:00
cairo-xlib-screen.c [xlib] Keep a pointer to the cairo_xlib_display_t on the surface. 2008-09-02 10:49:12 +01:00
cairo-xlib-surface-private.h [xlib] Keep a pointer to the cairo_xlib_display_t on the surface. 2008-09-02 10:49:12 +01:00
cairo-xlib-surface.c [xlib] Keep a pointer to the cairo_xlib_display_t on the surface. 2008-09-02 10:49:12 +01:00
cairo-xlib-visual.c [xlib] Implement dithering 2008-06-19 21:54:23 -04:00
cairo-xlib-xrender-private.h Revamp the build system. 2008-09-02 20:24:08 -04:00
cairo-xlib-xrender.h Use #include "cairo-*." instead of #include <cairo-*.h> 2008-06-23 00:30:04 -04:00
cairo-xlib.h Use #include "cairo-*." instead of #include <cairo-*.h> 2008-06-23 00:30:04 -04:00
cairo.c Move version functions to cairo-misc.c 2008-08-28 17:29:32 -04:00
cairo.h Move version number to src/cairo-version.h 2008-08-28 17:28:08 -04:00
cairo.pc.in Improve backend .pc files generation: 2006-07-12 04:27:55 -04:00
cairoint.h [cairoint.h] Update LAST_STATUS. 2008-09-07 18:31:29 +01:00
check-cairoint.sh [src/check-link.c] Simple test to check we can link to the built cairo.so 2008-09-02 21:31:43 -04:00
check-def.sh [src/check-def.sh] Make sure no global variables are named cairo_* 2008-06-19 17:43:52 -04:00
check-doc-syntax.sh Revamp the build system. 2008-09-02 20:24:08 -04:00
check-has-hidden-symbols.c [check] Move the hidden symbol check into check-{def,plt}.sh 2008-01-11 21:21:34 +00:00
check-headers.sh Make check-*.sh scripts more portable (#16299) 2008-06-12 21:03:19 -04:00
check-link.c [src/check-link.c] Simple test to check we can link to the built cairo.so 2008-09-02 21:31:43 -04:00
check-plt.sh Make check-*.sh scripts more portable (#16299) 2008-06-12 21:03:19 -04:00
Makefile.am [Makefile.am] Rename INCLUDES to AM_CPPFLAGS 2008-09-08 15:13:07 -04:00
Makefile.sources Rename src/*.mk to src/Makefile.* 2008-09-04 22:23:42 -04:00
Makefile.win32 Rename src/*.mk to src/Makefile.* 2008-09-04 22:23:42 -04:00
README Rename src/*.mk to src/Makefile.* 2008-09-04 22:23:42 -04:00
test-fallback-surface.c [doc] Make sure all macro names in docs are prefixed by % 2008-01-28 20:48:48 -05:00
test-fallback-surface.h [test-surfaces] Prefix public symbols with _cairo 2007-03-13 05:14:19 -04:00
test-meta-surface.c Add new public API cairo_surface_has_show_text_glyphs() 2008-08-18 14:54:21 -04:00
test-meta-surface.h [test-surfaces] Prefix public symbols with _cairo 2007-03-13 05:14:19 -04:00
test-paginated-surface.c Add new public API cairo_surface_has_show_text_glyphs() 2008-08-18 14:54:21 -04:00
test-paginated-surface.h [test-surfaces] Prefix public symbols with _cairo 2007-03-13 05:14:19 -04:00

Cairo Library Source Code
=========================

This directory contains the source code to the cairo library.


Source Code Listing
-------------------

The canonical list of source files is the file Source.mk.  See that
file for how it works.


New Backends
------------

The rule of the thumb for adding new backends is to see how other
backends are integrated.  Pick one of the simpler, unsupported, backends
and search the entire tree for it, and go from there.

To add new backends you need to basically:

  * Modify $(top_srcdir)/configure.in to add checks for your backend.

  * Modify Makefile.sources to add source files for your backend,

  * Modify $(top_srcdir)/boilerplate/ to add boilerplate code for
    testing your new backend.


New API
-------

After adding new API, run "make check" in this directory and fix any
reported issues.  Also add new API to the right location in
$(top_srcdir)/doc/public/cairo-sections.txt and run "make check"
in $(top_builddir)/doc/public to make sure that any newly added
documentation is correctly hooked up.

Do not forget to add tests for the new API.  See next section.


Tests
-----

There are some tests in this directory that check the source code and
the build for various issues.  The tests are very quick to run, and
particularly should be run after any documentation or API changes.  It
does not hurt to run them after any source modification either.  Run
them simply by calling:

	make check

There are also extensive regression tests in $(top_srcdir)/test.  It is
a good idea to run that test suite for any changes made to the source
code.  Moreover, for any new feature, API, or bug fix, new tests should
be added to the regression test suite to test the new code.


Bibliography
------------

A detailed list of academic publications used in cairo code is availagle
in the file $(top_srcdir)/BIBLIOGRAPHY.  Feel free to update as you
implement more papers.

For more technical publications (eg. Adobe technical reports) just
point them out in a comment in the header of the file implementing them.