Render cairo surface directly to OpenGL texture
I'm using cairo (http://cairographics.org) in combination with an OpenGL based 3D graphics library.  
I'm currently using the 3D library on Windows, but I'm hoping to receive an answer that is platform independent.

I've got the straight forward approach working which is to use **cairo_image_surface_create** in combination with **glTexImage2D** to get an OpenGL texture.

However, from what I've been able to gather from the documentation **cairo_image_surface_create** uses a CPU-based renderer and writes the output to main memory.

I've come to understand cairo has a new OpenGL based renderer which renders its output directly on the GPU, but I'm unable to find concrete details on how to use it.  
(I've found some details on the glitz-renderer, but it seems to be deprecated and removed).  

I've checked the surface list at: http://www.cairographics.org/manual/cairo-surfaces.html, but I feel I'm missing the obvious.

My question is: How do I create a cairo surface that renders directly to an OpenGL texture?  
Do note: I'll need to be able to use the texture directly (without copying) to display the cairo output on screen.
Render cairo surface directly to OpenGL texture
===

I'm using cairo (http://cairographics.org) in combination with an OpenGL based 3D graphics library.  
I'm currently using the 3D library on Windows, but I'm hoping to receive an answer that is platform independent.

I've got the straight forward approach working which is to use **cairo_image_surface_create** in combination with **glTexImage2D** to get an OpenGL texture.

However, from what I've been able to gather from the documentation **cairo_image_surface_create** uses a CPU-based renderer and writes the output to main memory.

I've come to understand cairo has a new OpenGL based renderer which renders its output directly on the GPU, but I'm unable to find concrete details on how to use it.  
(I've found some details on the glitz-renderer, but it seems to be deprecated and removed).  

I've checked the surface list at: http://www.cairographics.org/manual/cairo-surfaces.html, but I feel I'm missing the obvious.

My question is: How do I create a cairo surface that renders directly to an OpenGL texture?  
Do note: I'll need to be able to use the texture directly (without copying) to display the cairo output on screen.