cairo/src
Chris Wilson 6dfe050d63 [polygon] Amalgamate collinear edges
Combine sequential collinear edges into a single edge, this benefits
immensely by feeding fewer edges into either the tessellator or spans.
2009-08-29 08:08:31 +01:00
..
drm [drm] Add an accelerated image surface. 2009-07-23 16:18:42 +01:00
.gitignore [build] Include all generated win32 build files in the repo 2009-01-09 15:55:24 -05:00
cairo-analysis-surface-private.h Remove clip handling from generic surface layer. 2009-07-23 15:32:14 +01:00
cairo-analysis-surface.c [gl] Fallback for overlapping glyphs. 2009-07-28 15:58:54 +01: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 [surface] Speed up cairo_surface_get_mime_data(). 2009-06-01 18:04:13 +01:00
cairo-atomic-private.h [atomic] Silence compiler warnings by defining an intptr_t 2009-06-21 22:25:08 +01:00
cairo-atomic.c [atomic] Use an integer __sync_val_compare_and_swap() for pointer CAS. 2009-06-21 17:34:12 +03:00
cairo-base85-stream.c Mark allocation failures as unlikely. 2008-11-29 11:20:34 +00:00
cairo-bentley-ottmann-rectilinear.c [tessellator] Special case rectilinear tessellation 2009-08-29 08:08:29 +01:00
cairo-bentley-ottmann.c [tessellator] Special case rectilinear tessellation 2009-08-29 08:08:29 +01:00
cairo-beos-surface.cpp Remove clip handling from generic surface layer. 2009-07-23 15:32:14 +01:00
cairo-beos.h Use #include "cairo-*." instead of #include <cairo-*.h> 2008-06-23 00:30:04 -04:00
cairo-cache-private.h [cache] Expose init/fini methods so that caches can be embedded. 2009-06-01 18:04:14 +01:00
cairo-cache.c [cache] Expose init/fini methods so that caches can be embedded. 2009-06-01 18:04:14 +01:00
cairo-cff-subset.c [cff-subset] Free ps_name. 2009-01-29 10:10:41 +00:00
cairo-clip-private.h Remove clip handling from generic surface layer. 2009-07-23 15:32:14 +01:00
cairo-clip.c [clip] Use the rectilinear tessellator 2009-08-29 08:08:30 +01:00
cairo-color.c [directfb] When blitting check if we need the un-premultiplied color. 2008-10-20 23:20:24 +01:00
cairo-combsort-private.h [tessellator] Special case rectilinear tessellation 2009-08-29 08:08:29 +01:00
cairo-compiler-private.h [win32] Use _hypot instead of hypot 2009-03-21 11:56:18 -07:00
cairo-debug.c [drm] Add an accelerated image surface. 2009-07-23 16:18:42 +01:00
cairo-deflate-stream.c Mark allocation failures as unlikely. 2008-11-29 11:20:34 +00: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 [directfb] Conditionally use DSPF_BGR555 2009-08-06 10:10:06 +01:00
cairo-directfb.h Make sure feature macros are checked using #if, not #ifdef; add a test for it 2008-09-20 17:20:36 -04:00
cairo-drm.h [drm] Add an accelerated image surface. 2009-07-23 16:18:42 +01:00
cairo-eagle-context.c Merge commit 'anholt/gl' 2009-07-21 22:28:44 +01:00
cairo-features-uninstalled.pc.in Build -uninstalled.pc files 2008-09-11 00:38:30 -04:00
cairo-features.pc.in More fixes for pkgconfig files 2008-09-10 12:41:57 -04:00
cairo-fixed-private.h Eliminate self-intersecting strokes. 2009-08-29 08:08:28 +01:00
cairo-fixed-type-private.h Eliminate self-intersecting strokes. 2009-08-29 08:08:28 +01:00
cairo-fixed.c [fixpt] Make fixed point methods static inline and generic 2007-07-18 22:45:21 +02:00
cairo-font-face-twin-data.c [twin] Improve glyph hints 2008-12-25 02:46:27 -05:00
cairo-font-face-twin.c [ft] Substitute twin if there are no fonts 2009-06-19 11:20:48 +01:00
cairo-font-face.c [toy-font-face] Move toy font face code in a file of its own 2008-12-20 01:18:12 -05:00
cairo-font-options.c [font-options] Doc typo 2009-06-03 10:45:51 +01:00
cairo-freelist-private.h [freelist] Lazy initialisation of pools 2009-08-29 08:08:30 +01:00
cairo-freelist.c [freelist] Lazy initialisation of pools 2009-08-29 08:08:30 +01:00
cairo-ft-font.c Remove clip handling from generic surface layer. 2009-07-23 15:32:14 +01:00
cairo-ft-private.h Add CairoScript backend. 2008-11-13 11:36:54 +00:00
cairo-ft.h Support compiling without fontconfig 2009-03-17 00:58:40 -04:00
cairo-gl-glyphs.c [gl] Use scissors rather than allocating a temporary depth buffer. 2009-07-31 17:55:40 +01:00
cairo-gl-private.h [gl] Move hidden cairo_gl_surface_create() proto to header 2009-08-06 10:40:32 +01:00
cairo-gl-surface.c [gl] Move hidden cairo_gl_surface_create() proto to header 2009-08-06 10:40:32 +01:00
cairo-gl.h Merge commit 'anholt/gl' 2009-07-21 22:28:44 +01:00
cairo-glitz-private.h [slim] hide cairo_glitz_surface_create() (#8551) 2006-10-08 17:07:17 -04:00
cairo-glitz-surface.c Remove clip handling from generic surface layer. 2009-07-23 15:32:14 +01:00
cairo-glitz.h Use #include "cairo-*." instead of #include <cairo-*.h> 2008-06-23 00:30:04 -04:00
cairo-glx-context.c [gl] Add warning about missing hook for XCloseDisplay(). 2009-07-22 00:05:07 +01:00
cairo-gstate-private.h [cairo] Track the MRU scaled font 2009-06-02 15:13:44 +01:00
cairo-gstate.c [fill] Short-circuit extents on an empty path. 2009-08-29 08:08:30 +01:00
cairo-hash-private.h [scaled-font] Lean and mean global glyph cache. 2009-03-16 20:51:50 +00:00
cairo-hash.c Eliminate self-intersecting strokes. 2009-08-29 08:08:28 +01:00
cairo-hull.c [memfault] Manually inject faults when using stack allocations 2009-04-23 09:22:51 +01:00
cairo-image-info-private.h Add PNG get info function 2008-11-24 22:27:09 +10:30
cairo-image-info.c Change uint to uint32_t 2008-11-26 06:40:47 +10:30
cairo-image-surface.c [image] Discard redundant clears 2009-07-24 10:44:04 +01:00
cairo-list-private.h [script] Trim some excess verbage 2009-07-03 16:47:42 +01:00
cairo-lzw.c Mark allocation failures as unlikely. 2008-11-29 11:20:34 +00:00
cairo-malloc-private.h [memfault] Update macros to avoid namescape collision with memcheck 2009-05-15 21:31:03 +01:00
cairo-matrix.c Eliminate self-intersecting strokes. 2009-08-29 08:08:28 +01:00
cairo-meta-surface-private.h Remove clip handling from generic surface layer. 2009-07-23 15:32:14 +01:00
cairo-meta-surface.c Remove clip handling from generic surface layer. 2009-07-23 15:32:14 +01:00
cairo-misc.c Use new pixman extended blend operators 2009-07-14 16:03:43 +02:00
cairo-mutex-impl-private.h Spelling corrections: s/it's/its/ 2009-01-29 10:10:40 +00:00
cairo-mutex-list-private.h [drm] Add an accelerated image surface. 2009-07-23 16:18:42 +01:00
cairo-mutex-private.h [cairo-mutex] Move semicolons out of cairo-mutex-list-private.h 2008-09-19 18:45:44 -04:00
cairo-mutex-type-private.h Ensure that the scaled font is frozen for the lifetime of the scaled glyph. 2008-10-22 00:53:55 +01:00
cairo-mutex.c [cairo-mutex] Move semicolons out of cairo-mutex-list-private.h 2008-09-19 18:45:44 -04:00
cairo-os2-private.h [os2] Fix includes 2008-11-26 20:22:57 +00:00
cairo-os2-surface.c Remove clip handling from generic surface layer. 2009-07-23 15:32:14 +01:00
cairo-os2.h [os2] Move include cairo.h before os2.h 2008-11-26 20:23:05 +00:00
cairo-output-stream-private.h Add CairoScript backend. 2008-11-13 11:36:54 +00:00
cairo-output-stream.c Mark allocation failures as unlikely. 2008-11-29 11:20:34 +00:00
cairo-paginated-private.h Remove clip handling from generic surface layer. 2009-07-23 15:32:14 +01:00
cairo-paginated-surface-private.h Remove clip handling from generic surface layer. 2009-07-23 15:32:14 +01:00
cairo-paginated-surface.c [paginated] Propagate error return during finish. 2009-07-27 14:05:04 +01:00
cairo-path-bounds.c Remove clip handling from generic surface layer. 2009-07-23 15:32:14 +01:00
cairo-path-fill.c [clip] Use the rectilinear tessellator 2009-08-29 08:08:30 +01:00
cairo-path-fixed-private.h [path] Fix iter to handle circular list of buffers 2009-07-29 16:17:12 +01:00
cairo-path-fixed.c [path] Extend identical lines. 2009-08-06 10:16:02 +01:00
cairo-path-in-fill.c Remove clip handling from generic surface layer. 2009-07-23 15:32:14 +01:00
cairo-path-private.h [cairo-path] Make _cairo_path_nil static. 2007-10-30 10:58:16 +00:00
cairo-path-stroke.c [tessellator] Special case rectilinear tessellation 2009-08-29 08:08:29 +01:00
cairo-path.c [path] Fix regression introduced with 005436 2009-03-01 10:10:24 +00:00
cairo-pattern.c [pattern] Invalid access beyond end of freed-pool 2009-08-06 10:16:45 +01:00
cairo-pdf-operators-private.h PDF: Disable PDF 1.5 features when version 1.4 is selected 2008-11-24 22:27:09 +10:30
cairo-pdf-operators.c Spelling corrections: s/it's/its/ 2009-01-29 10:10:40 +00:00
cairo-pdf-surface-private.h Remove clip handling from generic surface layer. 2009-07-23 15:32:14 +01:00
cairo-pdf-surface.c PDF: Only Type 3 fonts should include glyph 0 in /ToUnicode 2009-07-28 21:34:28 +09:30
cairo-pdf.h Document PDF restrict_to_version API 2008-12-23 15:04:10 +10:30
cairo-pen.c Eliminate self-intersecting strokes. 2009-08-29 08:08:28 +01:00
cairo-png.c [debug] Check image contents using memcheck. 2009-05-15 21:31:03 +01:00
cairo-polygon.c [polygon] Amalgamate collinear edges 2009-08-29 08:08:31 +01:00
cairo-private.h [cairo] Embed a second gstate. 2009-01-02 09:53:25 +00:00
cairo-ps-surface-private.h Remove clip handling from generic surface layer. 2009-07-23 15:32:14 +01:00
cairo-ps-surface.c Remove clip handling from generic surface layer. 2009-07-23 15:32:14 +01:00
cairo-ps.h Use #include "cairo-*." instead of #include <cairo-*.h> 2008-06-23 00:30:04 -04:00
cairo-qt-surface.cpp [qt] Fix compilation 2009-08-10 21:31:10 +01:00
cairo-qt.h Import Qt backend by Mozilla 2009-06-16 11:03:46 +01:00
cairo-quartz-font.c [quartz] Use the implementation font-face not the associated 2009-08-10 17:20:00 +01:00
cairo-quartz-image-surface.c Remove clip handling from generic surface layer. 2009-07-23 15:32:14 +01: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 Remove clip handling from generic surface layer. 2009-07-23 15:32:14 +01:00
cairo-quartz-surface.c [quartz] Compile fix for show_glyphs 2009-08-10 17:44:31 +01:00
cairo-quartz.h Fix compilation on OS X when compiling for 64 bit 2009-06-11 17:32:23 -04:00
cairo-rectangle.c [path] Separate the approx. bounds into 3 distinct functions 2008-12-18 14:55:20 +00:00
cairo-reference-count-private.h Make sure (and check) that all private headers include some cairo header first 2008-09-19 17:19:10 -04:00
cairo-region-private.h [traps] Compute extents on demand. 2009-08-29 08:08:28 +01:00
cairo-region.c [traps] Compute extents on demand. 2009-08-29 08:08:28 +01:00
cairo-rtree-private.h [gl] Actually remove the glyph from the rtree on scaled_font_fini 2009-07-27 13:16:30 -07:00
cairo-rtree.c [gl] Actually remove the glyph from the rtree on scaled_font_fini 2009-07-27 13:16:30 -07:00
cairo-scaled-font-private.h [scaled-font] Close race from 16d128 2009-06-05 07:32:44 +01:00
cairo-scaled-font-subsets-private.h [scaled-font] Fix up syntax in doc comments 2009-01-29 10:10:39 +00:00
cairo-scaled-font-subsets.c Ensure Type 3 fonts do not use the name .notdef in the PS encoding 2009-07-28 22:34:42 +09:30
cairo-scaled-font.c [scaled-font] Update API documentation 2009-08-10 17:19:53 +01:00
cairo-script-surface.c Remove clip handling from generic surface layer. 2009-07-23 15:32:14 +01:00
cairo-script.h Remove clip handling from generic surface layer. 2009-07-23 15:32:14 +01:00
cairo-slope.c Eliminate self-intersecting strokes. 2009-08-29 08:08:28 +01:00
cairo-spans-private.h Eliminate self-intersecting strokes. 2009-08-29 08:08:28 +01:00
cairo-spans.c Eliminate self-intersecting strokes. 2009-08-29 08:08:28 +01:00
cairo-spline.c Revert "[spline] Treat a straight spline as degenerate." 2009-07-27 15:45:15 -07:00
cairo-stroke-style.c Remove clip handling from generic surface layer. 2009-07-23 15:32:14 +01:00
cairo-surface-clipper-private.h Remove clip handling from generic surface layer. 2009-07-23 15:32:14 +01:00
cairo-surface-clipper.c Remove clip handling from generic surface layer. 2009-07-23 15:32:14 +01:00
cairo-surface-fallback-private.h Remove clip handling from generic surface layer. 2009-07-23 15:32:14 +01:00
cairo-surface-fallback.c [fallback] Avoid tessellating empty polygons 2009-08-29 08:08:31 +01:00
cairo-surface-private.h Remove clip handling from generic surface layer. 2009-07-23 15:32:14 +01:00
cairo-surface-wrapper-private.h Remove clip handling from generic surface layer. 2009-07-23 15:32:14 +01:00
cairo-surface-wrapper.c Remove clip handling from generic surface layer. 2009-07-23 15:32:14 +01:00
cairo-surface.c [surface] Check for a NULL snapshot 2009-08-10 17:44:25 +01:00
cairo-svg-surface-private.h Remove clip handling from generic surface layer. 2009-07-23 15:32:14 +01:00
cairo-svg-surface.c Remove clip handling from generic surface layer. 2009-07-23 15:32:14 +01:00
cairo-svg.h Use #include "cairo-*." instead of #include <cairo-*.h> 2008-06-23 00:30:04 -04:00
cairo-system.c [cairo.h] Don't define cairo_public to __declspec(dllimport) for static build 2008-09-26 13:27:42 -04:00
cairo-tor-scan-converter.c Eliminate self-intersecting strokes. 2009-08-29 08:08:28 +01:00
cairo-toy-font-face.c Eliminate self-intersecting strokes. 2009-08-29 08:08:28 +01:00
cairo-traps.c [tessellator] Special case rectilinear tessellation 2009-08-29 08:08:29 +01:00
cairo-truetype-subset-private.h Fix TrueType subsetting bug 2009-04-05 01:09:32 +10:30
cairo-truetype-subset.c Fix typo in comment 2009-05-27 17:56:05 +09:30
cairo-type1-fallback.c [type1] Fixup error path during write_charstrings() 2009-03-31 12:16:02 +01:00
cairo-type1-private.h Revamp the build system. 2008-09-02 20:24:08 -04:00
cairo-type1-subset.c Mark allocation failures as unlikely. 2008-11-29 11:20:34 +00:00
cairo-type3-glyph-surface-private.h Remove clip handling from generic surface layer. 2009-07-23 15:32:14 +01:00
cairo-type3-glyph-surface.c Remove clip handling from generic surface layer. 2009-07-23 15:32:14 +01:00
cairo-types-private.h [polygon] Amalgamate collinear edges 2009-08-29 08:08:31 +01:00
cairo-unicode.c [doc] Fix a few gtk-doc errors. 2008-10-14 14:42:48 +01:00
cairo-uninstalled.pc.in Build -uninstalled.pc files 2008-09-11 00:38:30 -04:00
cairo-user-font-private.h Revamp the build system. 2008-09-02 20:24:08 -04:00
cairo-user-font.c Remove clip handling from generic surface layer. 2009-07-23 15:32:14 +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-vg-surface.c Remove clip handling from generic surface layer. 2009-07-23 15:32:14 +01:00
cairo-vg.h Add OpenVG backend. 2009-07-17 11:50:02 +01:00
cairo-wideint-private.h Eliminate self-intersecting strokes. 2009-08-29 08:08:28 +01:00
cairo-wideint-type-private.h Make sure (and check) that all private headers include some cairo header first 2008-09-19 17:19:10 -04:00
cairo-wideint.c Eliminate self-intersecting strokes. 2009-08-29 08:08:28 +01:00
cairo-win32-font.c Remove clip handling from generic surface layer. 2009-07-23 15:32:14 +01:00
cairo-win32-printing-surface.c Remove clip handling from generic surface layer. 2009-07-23 15:32:14 +01:00
cairo-win32-private.h Remove clip handling from generic surface layer. 2009-07-23 15:32:14 +01:00
cairo-win32-surface.c Remove clip handling from generic surface layer. 2009-07-23 15:32:14 +01:00
cairo-win32.h Make sure feature macros are checked using #if, not #ifdef; add a test for it 2008-09-20 17:20:36 -04:00
cairo-xcb-surface.c [gl] Fallback for overlapping glyphs. 2009-07-28 15:58:54 +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] Use server-side gradients. 2009-07-31 14:33:01 +01:00
cairo-xlib-private.h [xlib] Use server-side gradients. 2009-07-31 14:33:01 +01:00
cairo-xlib-screen.c [xlib] Improve GC caching efficacy 2009-06-19 00:28:57 +01:00
cairo-xlib-surface-private.h [boilerplate] Conditionally tweak the xlib surface 2009-07-31 14:48:32 +01:00
cairo-xlib-surface.c [xlib] DO_XCOPYAREA and DO_XTILE optimizations break with Window source 2009-08-26 21:22:52 +02:00
cairo-xlib-visual.c Mark allocation failures as unlikely. 2008-11-29 11:20:34 +00:00
cairo-xlib-xrender-private.h Define RepeatNone, etc if the available Render version doesn't (#18385) 2008-11-05 11:54:54 -05: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 Remove clip handling from generic surface layer. 2009-07-23 15:32:14 +01:00
cairo.h [drm] Add an accelerated image surface. 2009-07-23 16:18:42 +01:00
cairo.pc.in Improve backend .pc files generation: 2006-07-12 04:27:55 -04:00
cairoint.h [tessellator] Special case rectilinear tessellation 2009-08-29 08:08:29 +01:00
check-def.sh Import Qt backend by Mozilla 2009-06-16 11:03:46 +01:00
check-doc-syntax.sh [check] Search for the word NOTE 2008-11-29 10:14:26 +00: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 [check-*.sh] Redirect error reports to stderr 2008-09-26 11:08:22 -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 [check-*.sh] Redirect error reports to stderr 2008-09-26 11:08:22 -04:00
check-preprocessor-syntax.sh Import Qt backend by Mozilla 2009-06-16 11:03:46 +01:00
Makefile.am [tessellator] Use a priority queue for the events 2009-08-29 08:08:29 +01:00
Makefile.am.analysis [check] Quieten output during checking headers-standalone 2009-05-07 15:14:14 +01:00
Makefile.sources [tessellator] Special case rectilinear tessellation 2009-08-29 08:08:29 +01:00
Makefile.win32 [win32] Include $(OPT) flags when linking cairo.dll 2009-02-26 16:04:49 -05:00
Makefile.win32.features [drm] Add an accelerated image surface. 2009-07-23 16:18:42 +01:00
README Fix various README typos 2009-01-02 02:56:38 -05:00
test-fallback-surface.c Remove clip handling from generic surface layer. 2009-07-23 15:32:14 +01:00
test-fallback-surface.h [test-surfaces] Prefix public symbols with _cairo 2007-03-13 05:14:19 -04:00
test-fallback16-surface.c Remove clip handling from generic surface layer. 2009-07-23 15:32:14 +01:00
test-fallback16-surface.h [test] Create a new fallback surface to exercise 16-bit paths. 2009-05-05 21:17:11 +01:00
test-null-surface.c Remove clip handling from generic surface layer. 2009-07-23 15:32:14 +01:00
test-null-surface.h Missing header file for cairo-test-null-surface. 2009-06-15 12:14:51 +01:00
test-paginated-surface.c Remove clip handling from generic surface layer. 2009-07-23 15:32:14 +01:00
test-paginated-surface.h Remove clip handling from generic surface layer. 2009-07-23 15:32:14 +01:00
test-wrapping-surface.c Remove clip handling from generic surface layer. 2009-07-23 15:32:14 +01:00
test-wrapping-surface.h Remove clip handling from generic surface layer. 2009-07-23 15:32:14 +01:00

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

This directory contains the source code of the cairo library.


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

The canonical list of source files is the file Makefile.sources.  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 available
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.