drawFromGl

This is the main way to draw GL content in GTK+. It takes a render buffer ID (@source_type == #GL_RENDERBUFFER) or a texture id (@source_type == #GL_TEXTURE) and draws it onto @cr with an OVER operation, respecting the current clip. The top left corner of the rectangle specified by @x, @y, @width and @height will be drawn at the current (0,0) position of the cairo_t.

This will work for *all* cairo_t, as long as @window is realized, but the fallback implementation that reads back the pixels from the buffer may be used in the general case. In the case of direct drawing to a window with no special effects applied to @cr it will however use a more efficient approach.

For #GL_RENDERBUFFER the code will always fall back to software for buffers with alpha components, so make sure you use #GL_TEXTURE if using alpha.

Calling this may change the current GL context.

void
drawFromGl

Parameters

cr Context

a cairo context

window Window

The window we're rendering for (not necessarily into)

source int

The GL ID of the source buffer

sourceType int

The type of the @source

bufferScale int

The scale-factor that the @source buffer is allocated for

x int

The source x position in @source to start copying from in GL coordinates

y int

The source y position in @source to start copying from in GL coordinates

width int

The width of the region to draw

height int

The height of the region to draw

Meta

Since

3.16