skia_safe/modules/svg/fe/
gaussian_blur.rs1use 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}