mirror of
https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs.git
synced 2024-11-15 23:01:02 +00:00
9dcb68edc8
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/1457>
70 lines
3.8 KiB
TOML
70 lines
3.8 KiB
TOML
[package]
|
|
name = "gst-plugin-gtk4"
|
|
version = "0.11.3"
|
|
authors = ["Bilal Elmoussaoui <bil.elmoussaoui@gmail.com>", "Jordan Petridis <jordan@centricular.com>", "Sebastian Dröge <sebastian@centricular.com>"]
|
|
repository = "https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs"
|
|
license = "MPL-2.0"
|
|
edition = "2021"
|
|
rust-version = "1.70"
|
|
description = "GStreamer GTK 4 Sink element and Paintable widget"
|
|
|
|
[dependencies]
|
|
gtk = { package = "gtk4", git = "https://github.com/gtk-rs/gtk4-rs", branch = "0.7", version = "0.7" }
|
|
gdk_wayland = { package = "gdk4-wayland", git = "https://github.com/gtk-rs/gtk4-rs", branch = "0.7", version = "0.7", features = ["v4_4"], optional = true}
|
|
gdk_x11 = { package = "gdk4-x11", git = "https://github.com/gtk-rs/gtk4-rs", branch = "0.7", version = "0.7", features = ["v4_4"], optional = true}
|
|
|
|
gst = { package = "gstreamer", git = "https://gitlab.freedesktop.org/gstreamer/gstreamer-rs", branch = "0.21", version = "0.21", features = ["v1_16"] }
|
|
gst_base = { package = "gstreamer-base", git = "https://gitlab.freedesktop.org/gstreamer/gstreamer-rs", branch = "0.21", version = "0.21" }
|
|
gst_video = { package = "gstreamer-video", git = "https://gitlab.freedesktop.org/gstreamer/gstreamer-rs", branch = "0.21", version = "0.21" }
|
|
gst_gl = { package = "gstreamer-gl", git = "https://gitlab.freedesktop.org/gstreamer/gstreamer-rs", branch = "0.21", version = "0.21", features = ["v1_16"], optional = true }
|
|
|
|
gst_gl_wayland = { package = "gstreamer-gl-wayland", git = "https://gitlab.freedesktop.org/gstreamer/gstreamer-rs", branch = "0.21", version = "0.21", features = ["v1_16"], optional = true }
|
|
gst_gl_x11 = { package = "gstreamer-gl-x11", git = "https://gitlab.freedesktop.org/gstreamer/gstreamer-rs", branch = "0.21", version = "0.21", features = ["v1_16"], optional = true }
|
|
gst_gl_egl = { package = "gstreamer-gl-egl", git = "https://gitlab.freedesktop.org/gstreamer/gstreamer-rs", branch = "0.21", version = "0.21", features = ["v1_16"], optional = true }
|
|
async-channel = "2.0.0"
|
|
|
|
|
|
[target.'cfg(target_os = "macos")'.dependencies]
|
|
gtk = { package = "gtk4", git = "https://github.com/gtk-rs/gtk4-rs", branch = "0.7", version = "0.7", features = ["v4_6"] }
|
|
gst_gl = { package = "gstreamer-gl", git = "https://gitlab.freedesktop.org/gstreamer/gstreamer-rs", branch = "0.21", version = "0.21", features = ["v1_16"] }
|
|
|
|
[target.'cfg(target_os = "windows")'.dependencies]
|
|
gtk = { package = "gtk4", git = "https://github.com/gtk-rs/gtk4-rs", branch = "0.7", version = "0.7", features = ["v4_6"] }
|
|
gst_gl = { package = "gstreamer-gl", git = "https://gitlab.freedesktop.org/gstreamer/gstreamer-rs", branch = "0.21", version = "0.21", features = ["v1_20"] }
|
|
gdk_win32 = { package = "gdk4-win32", git = "https://github.com/gtk-rs/gtk4-rs", branch = "0.7", version = "0.7", features = ["v4_4"]}
|
|
windows-sys = { version = "0.52", features = ["Win32_Graphics_OpenGL", "Win32_Foundation", "Win32_Graphics_Gdi"] }
|
|
|
|
[lib]
|
|
name = "gstgtk4"
|
|
crate-type = ["cdylib", "rlib"]
|
|
path = "src/lib.rs"
|
|
|
|
[build-dependencies]
|
|
gst-plugin-version-helper = { path="../../version-helper", version = "0.8" }
|
|
|
|
[features]
|
|
default = []
|
|
static = []
|
|
wayland = ["gtk/v4_6", "gdk_wayland", "gst_gl", "gst_gl_wayland"]
|
|
x11glx = ["gtk/v4_6", "gdk_x11", "gst_gl", "gst_gl_x11"]
|
|
x11egl = ["gtk/v4_6", "gdk_x11", "gst_gl", "gst_gl_egl"]
|
|
winegl = ["gdk_win32/egl", "gst_gl_egl"]
|
|
capi = []
|
|
doc = ["gst/v1_18"]
|
|
gtk_v4_10 = ["gtk/v4_10"]
|
|
gtk_v4_12 = ["gtk/v4_12", "gtk_v4_10"]
|
|
gtk_v4_14 = ["gtk/v4_14", "gtk_v4_12"]
|
|
|
|
[package.metadata.capi]
|
|
min_version = "0.9.21"
|
|
|
|
[package.metadata.capi.header]
|
|
enabled = false
|
|
|
|
[package.metadata.capi.library]
|
|
install_subdir = "gstreamer-1.0"
|
|
versioning = false
|
|
import_library = false
|
|
|
|
[package.metadata.capi.pkg_config]
|
|
requires_private = "gstreamer-1.0, gstreamer-base-1.0, gstreamer-video-1.0, gtk4, gobject-2.0, glib-2.0, gmodule-2.0"
|