gtk4: Document paintable properties correctly

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1655>
This commit is contained in:
Sebastian Dröge 2024-07-06 13:56:24 +03:00 committed by GStreamer Marge Bot
parent 195c089f18
commit 6e974cf4b9
5 changed files with 87 additions and 5 deletions

View file

@ -2565,7 +2565,7 @@
"controllable": false, "controllable": false,
"mutable": "null", "mutable": "null",
"readable": true, "readable": true,
"type": "GdkPaintable", "type": "GstGtk4Paintable",
"writable": false "writable": false
} }
}, },
@ -2574,7 +2574,81 @@
}, },
"filename": "gstgtk4", "filename": "gstgtk4",
"license": "MPL", "license": "MPL",
"other-types": {}, "other-types": {
"GstGtk4Paintable": {
"hierarchy": [
"GstGtk4Paintable",
"GObject"
],
"interfaces": [
"GdkPaintable"
],
"kind": "object",
"properties": {
"background-color": {
"blurb": "Background color to render behind the video frame and in the borders",
"conditionally-available": false,
"construct": false,
"construct-only": false,
"controllable": false,
"default": "255",
"max": "-1",
"min": "0",
"mutable": "null",
"readable": true,
"type": "guint",
"writable": true
},
"force-aspect-ratio": {
"blurb": "When enabled, scaling will respect original aspect ratio",
"conditionally-available": false,
"construct": false,
"construct-only": false,
"controllable": false,
"default": "false",
"mutable": "null",
"readable": true,
"type": "gboolean",
"writable": true
},
"gl-context": {
"blurb": "GL context to use for rendering",
"conditionally-available": false,
"construct": false,
"construct-only": true,
"controllable": false,
"mutable": "null",
"readable": true,
"type": "GdkGLContext",
"writable": true
},
"scaling-filter": {
"blurb": "Scaling filter to use for rendering",
"conditionally-available": false,
"construct": false,
"construct-only": false,
"controllable": false,
"default": "linear (0)",
"mutable": "null",
"readable": true,
"type": "GskScalingFilter",
"writable": true
},
"use-scaling-filter": {
"blurb": "Use selected scaling filter or GTK default for rendering",
"conditionally-available": false,
"construct": false,
"construct-only": false,
"controllable": false,
"default": "false",
"mutable": "null",
"readable": true,
"type": "gboolean",
"writable": true
}
}
}
},
"package": "gst-plugin-gtk4", "package": "gst-plugin-gtk4",
"source": "gst-plugin-gtk4", "source": "gst-plugin-gtk4",
"tracers": {}, "tracers": {},

View file

@ -19,9 +19,17 @@ use gst::glib;
mod sink; mod sink;
mod utils; mod utils;
pub use sink::paintable::Paintable;
pub use sink::PaintableSink; pub use sink::PaintableSink;
fn plugin_init(plugin: &gst::Plugin) -> Result<(), glib::BoolError> { fn plugin_init(plugin: &gst::Plugin) -> Result<(), glib::BoolError> {
#[cfg(feature = "doc")]
{
use gst::prelude::*;
sink::paintable::Paintable::static_type().mark_as_plugin_api(gst::PluginAPIFlags::empty());
}
#[cfg(not(feature = "gtk_v4_10"))] #[cfg(not(feature = "gtk_v4_10"))]
{ {
if gtk::micro_version() >= 13 { if gtk::micro_version() >= 13 {

View file

@ -89,7 +89,7 @@ impl ObjectImpl for PaintableSink {
fn properties() -> &'static [glib::ParamSpec] { fn properties() -> &'static [glib::ParamSpec] {
static PROPERTIES: Lazy<Vec<glib::ParamSpec>> = Lazy::new(|| { static PROPERTIES: Lazy<Vec<glib::ParamSpec>> = Lazy::new(|| {
vec![ vec![
glib::ParamSpecObject::builder::<gdk::Paintable>("paintable") glib::ParamSpecObject::builder::<super::paintable::Paintable>("paintable")
.nick("Paintable") .nick("Paintable")
.blurb("The Paintable the sink renders to") .blurb("The Paintable the sink renders to")
.read_only() .read_only()

View file

@ -40,7 +40,7 @@ use gtk::glib::prelude::*;
mod frame; mod frame;
pub(super) mod imp; pub(super) mod imp;
mod paintable; pub(super) mod paintable;
enum SinkEvent { enum SinkEvent {
FrameChanged, FrameChanged,

View file

@ -22,7 +22,7 @@ glib::wrapper! {
} }
impl Paintable { impl Paintable {
pub fn new(context: Option<gdk::GLContext>) -> Self { pub(crate) fn new(context: Option<gdk::GLContext>) -> Self {
glib::Object::builder() glib::Object::builder()
.property("gl-context", context) .property("gl-context", context)
.build() .build()