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!(
23    sb::SkSVGFeGaussianBlur_StdDeviation,
24    StdDeviation,
25    std_deviation_layout
26);
27
28pub type GaussianBlur = RCHandle<sb::SkSVGFeGaussianBlur>;
29
30impl NodeSubtype for sb::SkSVGFeGaussianBlur {
31    type Base = sb::SkSVGFe;
32}
33
34impl_default_make!(GaussianBlur, sb::C_SkSVGFeGaussianBlur_Make);
35
36impl DebugAttributes for GaussianBlur {
37    const NAME: &'static str = "FeGaussianBlur";
38
39    fn _dbg(&self, builder: &mut std::fmt::DebugStruct) {
40        self.as_base()
41            ._dbg(builder.field("std_deviation", self.std_deviation()));
42    }
43}
44
45impl GaussianBlur {
46    skia_svg_macros::attrs! {
47        SkSVGFeGaussianBlur => {
48            std_deviation: StdDeviation [get(value) => StdDeviation::from_native_ref(value), set(value) => value.into_native()]
49        }
50    }
51}