skia_safe/modules/svg/fe/
displacement_map.rs1use super::{DebugAttributes, Input, NodeSubtype};
2use crate::{impl_default_make, prelude::*, scalar};
3use skia_bindings as sb;
4
5pub type ChannelSelector = sb::SkSVGFeDisplacementMap_ChannelSelector;
6variant_name!(ChannelSelector::R);
7
8pub type DisplacementMap = RCHandle<sb::SkSVGFeDisplacementMap>;
9
10impl NodeSubtype for sb::SkSVGFeDisplacementMap {
11 type Base = sb::SkSVGFe;
12}
13
14impl_default_make!(DisplacementMap, sb::C_SkSVGFeDisplacementMap_Make);
15
16impl DebugAttributes for DisplacementMap {
19 const NAME: &'static str = "FeDisplacementMap";
20
21 fn _dbg(&self, builder: &mut std::fmt::DebugStruct) {
22 self.as_base()._dbg(
23 builder
24 .field("input2", self.input2())
25 .field("x_channel_selector", self.x_channel_selector())
26 .field("y_channel_selector", self.y_channel_selector())
27 .field("scale", self.scale()),
28 );
29 }
30}
31
32impl DisplacementMap {
33 skia_svg_macros::attrs! {
34 SkSVGFeDisplacementMap => {
35 "in2" as input2: Input [get(value) => Input::from_native_ref(value), set(value) => value.into_native()],
36 x_channel_selector: ChannelSelector [get(value) => value, set(value) => value],
37 y_channel_selector: ChannelSelector [get(value) => value, set(value) => value],
38 scale: scalar [get(value) => value, set(value) => value]
39 }
40 }
41}