skia_safe/modules/svg/fe/
gaussian_blur.rs

1use super::{DebugAttributes, NodeSubtype};
2use crate::{impl_default_make, prelude::*, scalar};
3use skia_bindings as sb;
4
5#[repr(C)]
6#[derive(Debug, Copy, Clone)]
7pub struct StdDeviation {
8    pub x: scalar,
9    pub y: scalar,
10}
11
12impl StdDeviation {
13    pub fn new(x: scalar, y: scalar) -> Self {
14        Self { x, y }
15    }
16
17    pub fn new_all(value: scalar) -> Self {
18        Self { x: value, y: value }
19    }
20}
21
22native_transmutable!(sb::SkSVGFeGaussianBlur_StdDeviation, StdDeviation);
23
24pub type GaussianBlur = RCHandle<sb::SkSVGFeGaussianBlur>;
25
26impl NodeSubtype for sb::SkSVGFeGaussianBlur {
27    type Base = sb::SkSVGFe;
28}
29
30impl_default_make!(GaussianBlur, sb::C_SkSVGFeGaussianBlur_Make);
31
32impl DebugAttributes for GaussianBlur {
33    const NAME: &'static str = "FeGaussianBlur";
34
35    fn _dbg(&self, builder: &mut std::fmt::DebugStruct) {
36        self.as_base()
37            ._dbg(builder.field("std_deviation", self.std_deviation()));
38    }
39}
40
41impl GaussianBlur {
42    skia_svg_macros::attrs! {
43        SkSVGFeGaussianBlur => {
44            std_deviation: StdDeviation [get(value) => StdDeviation::from_native_ref(value), set(value) => value.into_native()]
45        }
46    }
47}