gdk: Deprecate gdk_cairo_draw_from_gl()

It's broken with various pixel formats and OpenGL ES, it's hard to
understand what everything does, and gdk_texture_download() can be used
instead.
This commit is contained in:
Benjamin Otte 2021-09-12 00:10:10 +02:00
parent c349ed9562
commit cbe6d0da76
2 changed files with 8 additions and 2 deletions

View File

@ -50,7 +50,7 @@ cairo_region_t *
gdk_cairo_region_create_from_surface gdk_cairo_region_create_from_surface
(cairo_surface_t *surface); (cairo_surface_t *surface);
GDK_AVAILABLE_IN_ALL GDK_DEPRECATED_IN_4_6_FOR(gdk_gl_texture_new)
void gdk_cairo_draw_from_gl (cairo_t *cr, void gdk_cairo_draw_from_gl (cairo_t *cr,
GdkSurface *surface, GdkSurface *surface,
int source, int source,

View File

@ -301,7 +301,7 @@ gdk_gl_texture_quads (GdkGLContext *paint_context,
* @width: The width of the region to draw * @width: The width of the region to draw
* @height: The height of the region to draw * @height: The height of the region to draw
* *
* The main way to draw GL content in GTK. * The main way to not draw GL content in GTK.
* *
* It takes a render buffer ID (@source_type == GL_RENDERBUFFER) or a texture * 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, * id (@source_type == GL_TEXTURE) and draws it onto @cr with an OVER operation,
@ -319,6 +319,12 @@ gdk_gl_texture_quads (GdkGLContext *paint_context,
* with alpha components, so make sure you use GL_TEXTURE if using alpha. * with alpha components, so make sure you use GL_TEXTURE if using alpha.
* *
* Calling this may change the current GL context. * Calling this may change the current GL context.
*
* Deprecated: 4.6: The function is overly complex and produces broken output
* in various combinations of arguments. If you want to draw with GL textures
* in GTK, use [ctor@Gdk.GLTexture.new]; if you want to use that texture in
* Cairo, use [method@Gdk.Texture.download] to download the data into a Cairo
* image surface.
*/ */
void void
gdk_cairo_draw_from_gl (cairo_t *cr, gdk_cairo_draw_from_gl (cairo_t *cr,