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!(
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}