mirror of
https://gitlab.freedesktop.org/cairo/cairo.git
synced 2026-01-02 06:30:14 +01:00
In order for SLIM's PLT indirection avoidance to work, everything in
the library that makes internal function calls needs to see the
relevant slim_hidden_proto() macro in addition to the function's
prototype. However, external headers used by clients of the shared
library should not use the SLIM macros at all.
Pixman is a rather odd case -- it's mostly independent from cairo, so
it has it's own public interface, but it's built as a part of cairo
instead of its own shared library. This means that cairo would need to
see all of pixman's slim_hidden_proto() macros in order to function
and it doesn't currently, which results in a link failure on AMD64
systems and on i386 systems (I think, I haven't actually verified
this) it produces a shared object that isn't actally sharable.
I have no idea why exactly the link failure only showed up as a result
of commit
|
||
|---|---|---|
| .. | ||
| src | ||
| .gitignore | ||
| AUTHORS | ||
| autogen.sh | ||
| ChangeLog | ||
| ChangeLog.libic | ||
| ChangeLog.libpixregion | ||
| ChangeLog.slim | ||
| configure.in | ||
| COPYING | ||
| INSTALL | ||
| libpixman.pc.in | ||
| Makefile.am | ||
| NEWS | ||
| README | ||
| RELEASING | ||
| TODO | ||
| update.pl | ||
libpixman - Pixel manipulation library libpixman is a merge of libpixregion and libic. It also includes the slim headers. ---------------------------------------------------------------------- libpixregion - Pixel region Library libpixregion is a generic library for manipulating pixel regions. A PixRegion is a set of Y-X banded rectangles that cover the desired region. The original code for libxregion was part of the reference X server implementation of the X Window System. A modified copy of the code also exists in the Xlib client library. libpixregion was formed so that both the X server and client libraries could share common code for region manipulation. libpixregion is also intended to be applicable outside of the X Window System. The public interface of libpixregion does not depend on any part of the X Window System. ---------------------------------------------------------------------- libic - Image compositing library libic is a generic image compositing library. libic provides Porter/Duff compositing of images and implicit mask generation for geometric primitives including trapezoids, triangles, and rectangles. The semantics of libic are designed to precisely match the specification of the X Render extension. In fact, the initial implementation of libic was lifted from the reference implementation of RENDER from the X server. However, libic is intended to be useful independent of the X Window System. The public interface exported by libic does not contain any X-specific data structures. Carl Worth cworth@isi.edu Keith Packard (keithp@keithp.com) originally wrote all the original RENDER code that was yanked out to become libic. Keith also provided impetus and guidance in the development of libic. ---------------------------------------------------------------------- slim - Shared Library Interface Macros