[cairo] OpenGL ES 2 support

I-Gene Leong ILeong at nvidia.com
Thu Jan 7 16:53:09 PST 2010

Hi all,

I'm looking to add support for OpenGL ES 2 acceleration to Cairo. From what I've seen, there are efforts underway for OpenGL 1.0 and 2.0 (using GLSL), so it's probably worthwhile to consider coordinating, especially since there'll be common code (less so between GL1 and ES2, but definitely so between GL2 and ES2).

Before I get there, though, I'm already puzzling over how to extend the EGL stuff that's already in the OpenVG surface code to cover the GL code as well. The OpenVG code has a cairo_vg_context_create_for_egl function. Is this the model to follow (i.e. should I write cairo_gl_context_create_for_egl)? I had been hoping to create a common EGL module, but I'm not sure it makes sense; aside from the GL and VG code needing different context pointers, EGL contexts are already tied to a given API anyway.

Actually, it occurs to me that a common EGL module is still doable, though, if I let it have its own structure (i.e. cairo_egl_context) and then provide functions to create VG and GL contexts out of it. I would expect the majority of the code to be common between the two, though I haven't fleshed out much of it yet. (For instance, could we really have one function create Cairo surfaces out of EGL surfaces for both VG and GL?)

Anyway, I'd like to find out more about what's already going on, and what I should be looking at first.


This email message is for the sole use of the intended recipient(s) and may contain
confidential information.  Any unauthorized review, use, disclosure or distribution
is prohibited.  If you are not the intended recipient, please contact the sender by
reply email and destroy all copies of the original message.

More information about the cairo mailing list