gst-plugins-rs/video/gtk4/src/sink
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
..
paintable gtk4: Improve handling of RGBA GL textures in GTK 2024-02-08 12:35:26 +02:00
frame.rs gtk4: Improve handling of RGBA GL textures in GTK 2024-02-08 12:35:26 +02:00
imp.rs gtk4: Improve handling of RGBA GL textures in GTK 2024-02-08 12:35:26 +02:00
mod.rs gtk4: Improve handling of RGBA GL textures in GTK 2024-02-08 12:35:26 +02:00