[cairo] [Blacklisted] cairo-egl and cairo-vg
lu_zero at gentoo.org
Wed Aug 11 15:47:44 PDT 2010
On 07/30/2010 08:51 PM, Chris Wilson wrote:
> Yes, we've known this problem is brewing. The prevailing opinion is that
> it should just be a mutually exclusive configure time option. The
> situation is that bad unfortunately.
I spent some time trying to figure out what's going on cairo-gl*
Right now we have an unholy mixture of opengl 1.5 and opengl 2.0 all
around, it could be split and 1.5 cruft might be replaced by opengl 2.0
alternatives. The further step would be having an opengl 2.0 backend
that could work also with opengles2.
I started looking with more attention at the _cairo_gl_context_init
(used by cairo_egl).
It tries to check for glew, check for features, allocate textures and
whatelse. Probably some if not all that code might be moved somewhere else.
I also noticed that
./configure --enable-vg doesn't build, --enable-gl is necessary
otherwise this error get triggered:
In file included from cairo-gl-gradient-private.h:51,
cairo-gl.h:116:3: error: #error Cairo was not compiled with support for
the GL backend
>> - cairo-vg doesn't work with the mesa implementation and relies to
>> cairo-gl in a way or another.
> vg needs quite a bit of love at the moment. Fixing the boilerplate is the
> first job.
What's to be fixed exactly?
> Then make sure the upload and download of images is correct.
> After that it is removing enough code to start passing the test suite and
> then gradually add it back, testing as you go.
>> Is somebody working on them? Anybody willing to guide me a bit while I
>> try to do myself?
> As far as I know, nobody is currently working on the VG backend. It's been
> on my wishlist -- especially to have a VG, GL and image backend for the
> same hardware. Please do fix it up and you are welcome to as much help as
> we can muster.
So far I'm a bit lost understanding how to properly untangle the opengl
backend so the egl one would build with cairo-gl disabled. Apparently
the cairo-gl-device prepares a backend with some dummy entries and then
calling cairo_*_device_create those got filled.
Here a first small patch that at least should widen the audience
More information about the cairo