Commit graph

8701 commits

Author SHA1 Message Date
Benjamin Otte
f7fc8569a7 build: Fix C++ issues with automake
This is an attempt to fix the broken situation we've been in where
automake links libcairo.la with c++ because it might potentially maybe
include C++ files.

Those potential files only exist in Chris' throwaway backends (skia, qt)
and the BeOS backend, so for 99.99% of cases, these backends are not
needed and linking with c++ is overkill. Also, no one wants to have
libcairo.so link to libstdc++.

This patch fixes that in mutliple steps:
1) Add build infrastructure to distinguish between C and C++ backends.
   This is done by allowing to specify backend_sources as well as
   backend_cxx_sources variables in Makefile.sources.
2) Optionally build a libcairo_cxx.la noinst library
   This intermediate library is built for C++ backends only and therefor
   linked using c++. It is then linked into the final libcairo.la. This
   does not require c++, so the linking of libcairo.la is done with cc.

This also works around various weirdnesses that the current build system
exposes, where it assumes cisms when in fact using c++ semantics, like
not detecting c++ properly or:
https://bugzilla.redhat.com/show_bug.cgi?id=606523
2010-07-09 12:38:37 +02:00
Benjamin Otte
df6d49f6ea build: Get rid of $(foo_files) Makefile.am variables
They're unused, and less variables make the build system easier to
understand.
2010-07-09 11:10:20 +02:00
Benjamin Otte
ce530b2802 doc: Add "@Since: 1.10" tags to device docs 2010-07-09 04:24:51 +02:00
Benjamin Otte
c1fed69302 gl: Remove double ** from some comments
gtk-doc doesn't like that unless it's a real gtk-doc comment.
And it wasn't.
2010-07-09 04:20:42 +02:00
Benjamin Otte
5c73b371ae doc: Document remaining cairo-device functions 2010-07-09 04:20:06 +02:00
Benjamin Otte
9877c1932a doc: Add more documentation for devices
Add general docs and document acquire/release. I'm not happy with the
documentation yet. In particular, I have 2 issues:
1) The threading guarantees Cairo provides are missing.
2) There's no docs on which Cairo functions do acquire devices.

I guess I'll have to fix them later.
2010-07-09 04:09:19 +02:00
Benjamin Otte
739d6e35fa doc: Clarify that cairo_surface_get_device() can return NULL 2010-07-09 03:04:27 +02:00
Benjamin Otte
65d0590b04 doc: Copy docs for standard device APIs
Copied from the surface equivalents
2010-07-09 02:23:51 +02:00
Benjamin Otte
8a08b6fa52 doc: Remove the <TITLE> declarations
This information was duplicated. It exists as the "@Title" of the
SECTION inline documentation already.
2010-07-09 02:21:00 +02:00
Benjamin Otte
5e76bc6deb doc: Add missing region documentation 2010-07-09 02:11:59 +02:00
Benjamin Otte
57da730d28 doc: Fix a syntax issue in quartz-font gtkdoc
A missing empty line caused the long description to be part of
@See_Also. Ooops.
2010-07-09 02:11:59 +02:00
Andrea Canciani
fb03eba44f test: Add quartz functions to api-special-cases test 2010-07-08 20:06:08 +02:00
Andrea Canciani
59aab0bdc2 test: fix typo 2010-07-08 20:05:13 +02:00
Benjamin Otte
b870cc030d doc: Move tmpl/ docs to inline docs
I did this manually so I could review the docs at the same time.
If anyone finds typos or other mistakes I did, please complain to me (or
better: fix them).
2010-07-08 14:27:16 +02:00
Benjamin Otte
65a1e35133 doc: Remove CAIRO_FORMAT_RGB16_565 from hidden symbols list
It's part of the cairo_format_t documentation now.
2010-07-08 13:58:53 +02:00
Benjamin Otte
e7594aebce doc: Fix some consistency issues that confuse gtk-doc 2010-07-08 13:58:53 +02:00
Benjamin Otte
da2663a0aa doc: Add list of new symbol in Cairo 1.10 2010-07-08 13:58:53 +02:00
Benjamin Otte
a106aa86a3 doc: add --name-space option to gtkdoc-mkdb
This sorts function names in new symbols lists way better.
2010-07-08 13:58:53 +02:00
Benjamin Otte
71d17e4b1f drm: Fix Makefile for drm_xr
Use cairo_drm_xr_sources/headers for the drm_xr stuff. This makes it
work correctly in gtk-doc instead of conditionally adding it to
cairo_drm_sources/headers.
2010-07-08 13:58:52 +02:00
Benjamin Otte
4b3e488ceb skia: Add cairo-skia.h as a public header 2010-07-08 13:58:52 +02:00
Benjamin Otte
2a546286da doc: Add a section about regions 2010-07-08 13:58:52 +02:00
Benjamin Otte
ab1f6d1af7 doc: Add missing surface APIs 2010-07-08 13:58:52 +02:00
Benjamin Otte
90bf273a38 doc: Add a section for cairo_device_t 2010-07-08 13:58:52 +02:00
Benjamin Otte
60e4f28d09 doc: Add cairo_in_clip() to cairo_t section 2010-07-08 13:58:52 +02:00
Benjamin Otte
6843186b72 doc: Add cairo_rectangle_int_t to the general types list 2010-07-08 13:58:52 +02:00
Benjamin Otte
c54dff82d3 glew: The headers are private, not public 2010-07-08 13:58:52 +02:00
Benjamin Otte
4252e3b8f9 doc: Add drm and glew to the ignored directories
This reduces the number of unused symbols to a reasonable size. ;)
2010-07-08 13:58:52 +02:00
Benjamin Otte
729d00341c gl: Fix compile error after rebase failure 2010-07-08 13:58:51 +02:00
Colin Walters
292423c733 Support NOCONFIGURE environment variable
This is taken from gnome-common; it can be convenient for builders
to separate the autogen from the configure stage.
2010-07-08 03:32:52 +02:00
Kristian Høgsberg
9e6c151af8 gl: Add new cairo-gl surface constructor to create surface for texture 2010-07-07 18:11:36 -04:00
Benjamin Otte
4c91bb9a22 region: Add cairo_region_xor() and cairo_region_xor_rectangle()
gdk_region_xor() was a quite often used function in GDK and now that
GDKe uses cairo regions, it seems like a worthwhile addition to Cairo.
2010-07-06 17:27:18 +02:00
Benjamin Otte
82de6336d8 test: Add note about how to fix failures to api-special-cases 2010-07-06 00:48:36 +02:00
Benjamin Otte
75f269b14e test: Add documentation to the api-special-cases test
Hopefully people add other backend APIs to the testsuite.
2010-07-06 00:41:12 +02:00
Benjamin Otte
398870e64a xlib: Setters should set finished surfaces into an error status
Caught by api-special-cases test
2010-07-06 00:22:38 +02:00
Benjamin Otte
6e562d1448 xcb: Setters should set finished surfaces into an error status
Caught by api-special-cases test
2010-07-06 00:22:31 +02:00
Benjamin Otte
fa07070496 test: Add xcb and xlib functions to api-special-cases test 2010-07-06 00:20:36 +02:00
Benjamin Otte
c4068fe941 test: Add ps, pdf and svg to the api-special-cases test 2010-07-05 23:14:33 +02:00
Benjamin Otte
3e008e8ab0 svg: Set error when extracting from finished surface
Caught by api-special-cases test
2010-07-05 23:14:19 +02:00
Benjamin Otte
2e66cbaee2 ps: Allow specifying if errors on extract_surface should be set
Getters should not set errors on passed in input. So we don't.

Caught by api-special-cases test
2010-07-05 23:11:02 +02:00
Benjamin Otte
f5dfc3ce6e ps: Set error when extracting from finished surface
Caught by api-special-cases test
2010-07-05 23:08:08 +02:00
Benjamin Otte
106357f6e2 pdf: Set error when extracting from finished surface
Caught by api-special-cases test
2010-07-05 23:07:24 +02:00
Benjamin Otte
702aa19fda gl: Fail properly when called with finished functions
Caught by api-special-cases test
2010-07-05 22:50:44 +02:00
Benjamin Otte
b87be76bdf test: Add gl functions to the tests 2010-07-05 22:50:18 +02:00
Benjamin Otte
448653e7b9 Call _cairo_error() when setting the FINISHED error on surfaces 2010-07-05 22:42:08 +02:00
Benjamin Otte
19da8e138d tee: Add proper error handling
Caught by api-special-cases
2010-07-05 22:40:54 +02:00
Benjamin Otte
a9f30fc1f0 test: Add recording and tee surface functions to api-special-cases 2010-07-05 22:40:34 +02:00
Benjamin Otte
41abc0ca37 test: add PNG functions 2010-07-05 22:19:05 +02:00
Benjamin Otte
897eaa3e97 test: Add a non-error surface check
In that check, we call functions that require a specific surface type
with surfaces of a different type and check that they don't crash and
set the correct error.
2010-07-05 22:11:23 +02:00
Benjamin Otte
986ddf5652 test: add image surface functions to api-special-cases test 2010-07-05 22:03:42 +02:00
Benjamin Otte
72878d70ea test: Add a new test variant to api-special-cases test
This variant tests a (hopefully) inert error surface.
2010-07-05 21:01:56 +02:00