support for external surface backends

Sebastian Reichel <[email protected]>
Newsgroups gmane.comp.lib.cairo
Message-ID <[email protected]>
Hi,

We have a Chinese lasercutter at our hackspace, which uses some
obscure proprietary format. We are currently reverse engineering
the protocol and have written a simple tool, which translates the
format into svg using cairo. So far so easy :)

But we also want to support translating the other way around. For
this we thought about hooking into cairo as surface backend like
this:

-----
cairo_surface_t *surface;
cairo_t *cr;

surface = laser_cutter_surface_not_part_of_cairo(some, params);
cr = cairo_create(surface);

do_some_cairo_stuff();
-----

The backend does not really fit into a default cairo installation
and IMHO it does not fit into the cairo repository at all. Thus
we would like to put it into an additional library, which implements
the surface interface.

The problem is, that the cairo API does not allow external surface
backends if I'm not mistaken. I mainly see two reasons for this:

1. cairo_surface_type_t is a compile-time-generated enum in cairo's
   sourcecode
2. cairo_surface_t and cairo_backend_t are not exposed in the
   public API

Are there any plans to make these kind of setups possible with
cairo?

-- Sebastian

-- 
cairo mailing list
[email protected]
http://lists.cairographics.org/mailman/listinfo/cairo
signature.asc (application/pgp-signature, 836 B)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)

iQIcBAEBCAAGBQJR20PyAAoJENju1/PIO/qaulQQAICUbuwEYlGQ6BsDXQIq4YTH
DluO0jJKCbTRpKTn7/nA97mtqTkIxt0tkJbJRu9xZj+MtSEFQQyM/jl8fwCXfaBL
xzWEVZzK4FrTech9Ii6991F4BFLdPcZWileEbFji85fSfb+A7Q/emdLcmyeAx1JG
wF+zzO98tQJElcuv+ffqbhAl/62NzJ0nkOhcror5S4Wllz9xsXG/qNt0uvF6pck1
vb785reIDNruHq2zKDC3JnjV1OtpHHV+P/arLa/4FnK/gNnKZH4TvvGaVIAwZTUq
u9TqRetgAjKyN1kapAuDOFAZY1GiW+AbaUV6pHgzuvCo1wP2MHwx1t3Feg+lQVg4
XY5URBwYYg2Ae4RXvWkw02TOGYZTtbqMO3en4577hxHDTqZ1q7jXedUo57zmdp0u
arxlY5Ac6IEw9Fdeer9HY0gv9rmTR1EbQDe2AL8SPw/OfFfQyXWaqjNmHeGcsY/d
/MPX3ykSz+Di9Nlwr3zmXWZolLeowfMWKESgWaW68oHpBd/HNVcHcge0HtcLHe2T
mexBQGX7ZibiupYgyNOUoG1MSRU/PW3RPSAQWXCvIdkn5LoZtNpBBXIYZyeBWirN
lNs+tXLFupwMu4DWa7ni1GCDWqoWYMpf8/3Q3di3dWB3m3srw9TJ4ZVLOCC8jp9b
t9P2S/ef5/7Gw4XnxkzO
=B8jL
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.