gst-plugins-rs/video/gtk4/src
Sebastian Dröge 803550111a gtk4: Improve handling of RGBA GL textures in GTK
GTK 4.14 comes with a new GL renderer that does not support GL shader
nodes anymore, so the conversion from non-premultiplied alpha to
premultiplied alpha has to happen differently.

For GTK 4.14 or newer we use the correct format directly when building the
texture, but only if a GLES3+ context is used. In that case the NGL renderer is
used by GTK, which supports non-premultiplied formats correctly and fast.

For GTK 4.10-4.12, or 4.14 and newer if a GLES2 context is used, we use a
self-mask to pre-multiply the alpha.

For GTK before 4.10, we use a GL shader and hope that it works.

Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/488

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1452>
2024-02-08 12:35:26 +02:00
..
sink gtk4: Improve handling of RGBA GL textures in GTK 2024-02-08 12:35:26 +02:00
lib.rs gtk4: Improve handling of RGBA GL textures in GTK 2024-02-08 12:35:26 +02:00
utils.rs video/gtk4: Implement support for GLTextures when possible. 2022-11-29 21:18:46 +02:00