mirror of
https://gitlab.freedesktop.org/cairo/cairo.git
synced 2025-12-25 21:10:10 +01:00
The device is a generic method for accessing the underlying interface with the native graphics subsystem, typically the X connection or perhaps the GL context. By exposing a cairo_device_t on a surface and its various methods we enable finer control over interoperability with external interactions of the device by applications. The use case in mind is, for example, a multi-threaded gstreamer which needs to serialise its own direct access to the device along with Cairo's across many threads. Secondly, the cairo_device_t is a unifying API for the mismash of backend specific methods for controlling creation of surfaces with explicit devices and a convenient hook for debugging and introspection. The principal components of the API are the memory management of: cairo_device_reference(), cairo_device_finish() and cairo_device_destroy(); along with a pair of routines for serialising interaction: cairo_device_acquire() and cairo_device_release() and a method to flush any outstanding accesses: cairo_device_flush(). The device for a particular surface may be retrieved using: cairo_surface_get_device(). The device returned is owned by the surface. |
||
|---|---|---|
| .. | ||
| cairo-fdr | ||
| cairo-script | ||
| cairo-sphinx | ||
| cairo-trace | ||
| .gitignore | ||
| backtrace-symbols.c | ||
| cairo-api-update | ||
| cairo-view | ||
| cairo.modules | ||
| COPYING | ||
| font-view.c | ||
| Makefile.am | ||
| malloc-stats.c | ||
| README | ||
| show-edges.c | ||
| show-events.c | ||
| show-traps.c | ||
| trace-to-xml.c | ||
| waterfall | ||
| xml-to-trace.c | ||
| xr2cairo | ||
Cairo Utilities =============== There are a varieties of utilities we use with cairo. backtrace-symbols ----------------- This is a small shared library designed to be preloaded by the linker and its purpose is to make the backtrace_symbols() function of glibc produce more useful source reference information. Build by: make backtrace-symbols.so and use by: LD_PRELOAD=$PWD/backtrace-symbols.so app-to-run This code should be contributed back to glibc at some point. malloc-stats ------------ This is a small shared library designed to be preloaded by the linker and its purpose is to make the malloc_stats() function of glibc produce more useful information. Build by: make malloc-stats.so and use by: LD_PRELOAD=$PWD/malloc-stats.so app-to-run This works best when backtrace-symbols is in use. That is: LD_PRELOAD="$PWD/backtrace-symbols.so $PWD/malloc-stats.so" app-to-run cairo-trace ----------- This tool can be used to trace all the cairo function calls made by an applications. This is useful for either extracting a test case triggering a bug from an application, or simply to get a general idea of how an application is using cairo. cairo-api-update and xr2cairo ----------------------------- These two scripts were used to convert source code written for pre-1.0 cairo to newer API. See $(top_srcdir)/PORTING_GUIDE for more information. These files are obsolete now and may be removed in a future version. cairo-view and waterfall ------------------------ These are two pycairo scripts useful for testing the toy font backend.