use core::ffi::*;
use core::ptr::NonNull;
use objc2::__framework_prelude::*;
#[cfg(feature = "objc2-app-kit")]
#[cfg(target_os = "macos")]
use objc2_app_kit::*;
#[cfg(feature = "objc2-core-image")]
#[cfg(not(target_os = "watchos"))]
use objc2_core_image::*;
use objc2_foundation::*;
use crate::*;
extern_class!(
#[unsafe(super(SKNode, NSResponder, NSObject))]
#[derive(Debug, PartialEq, Eq, Hash)]
#[cfg(all(feature = "SKNode", feature = "objc2-app-kit"))]
#[cfg(target_os = "macos")]
pub struct SKEffectNode;
);
#[cfg(all(feature = "SKNode", feature = "objc2-app-kit"))]
#[cfg(target_os = "macos")]
extern_conformance!(
unsafe impl NSCoding for SKEffectNode {}
);
#[cfg(all(feature = "SKNode", feature = "objc2-app-kit"))]
#[cfg(target_os = "macos")]
extern_conformance!(
unsafe impl NSCopying for SKEffectNode {}
);
#[cfg(all(feature = "SKNode", feature = "objc2-app-kit"))]
#[cfg(target_os = "macos")]
unsafe impl CopyingHelper for SKEffectNode {
type Result = Self;
}
#[cfg(all(feature = "SKNode", feature = "objc2-app-kit"))]
#[cfg(target_os = "macos")]
extern_conformance!(
unsafe impl NSObjectProtocol for SKEffectNode {}
);
#[cfg(all(feature = "SKNode", feature = "objc2-app-kit"))]
#[cfg(target_os = "macos")]
extern_conformance!(
unsafe impl NSSecureCoding for SKEffectNode {}
);
#[cfg(all(
feature = "SKNode",
feature = "SKWarpGeometry",
feature = "objc2-app-kit"
))]
#[cfg(target_os = "macos")]
extern_conformance!(
unsafe impl SKWarpable for SKEffectNode {}
);
#[cfg(all(feature = "SKNode", feature = "objc2-app-kit"))]
#[cfg(target_os = "macos")]
impl SKEffectNode {
extern_methods!(
#[cfg(feature = "objc2-core-image")]
#[unsafe(method(filter))]
#[unsafe(method_family = none)]
pub unsafe fn filter(&self) -> Option<Retained<CIFilter>>;
#[cfg(feature = "objc2-core-image")]
#[unsafe(method(setFilter:))]
#[unsafe(method_family = none)]
pub unsafe fn setFilter(&self, filter: Option<&CIFilter>);
#[unsafe(method(shouldCenterFilter))]
#[unsafe(method_family = none)]
pub unsafe fn shouldCenterFilter(&self) -> bool;
#[unsafe(method(setShouldCenterFilter:))]
#[unsafe(method_family = none)]
pub unsafe fn setShouldCenterFilter(&self, should_center_filter: bool);
#[unsafe(method(shouldEnableEffects))]
#[unsafe(method_family = none)]
pub unsafe fn shouldEnableEffects(&self) -> bool;
#[unsafe(method(setShouldEnableEffects:))]
#[unsafe(method_family = none)]
pub unsafe fn setShouldEnableEffects(&self, should_enable_effects: bool);
#[unsafe(method(shouldRasterize))]
#[unsafe(method_family = none)]
pub unsafe fn shouldRasterize(&self) -> bool;
#[unsafe(method(setShouldRasterize:))]
#[unsafe(method_family = none)]
pub unsafe fn setShouldRasterize(&self, should_rasterize: bool);
#[unsafe(method(blendMode))]
#[unsafe(method_family = none)]
pub unsafe fn blendMode(&self) -> SKBlendMode;
#[unsafe(method(setBlendMode:))]
#[unsafe(method_family = none)]
pub unsafe fn setBlendMode(&self, blend_mode: SKBlendMode);
#[cfg(feature = "SKShader")]
#[unsafe(method(shader))]
#[unsafe(method_family = none)]
pub unsafe fn shader(&self) -> Option<Retained<SKShader>>;
#[cfg(feature = "SKShader")]
#[unsafe(method(setShader:))]
#[unsafe(method_family = none)]
pub unsafe fn setShader(&self, shader: Option<&SKShader>);
#[cfg(feature = "SKAttribute")]
#[unsafe(method(attributeValues))]
#[unsafe(method_family = none)]
pub unsafe fn attributeValues(&self) -> Retained<NSDictionary<NSString, SKAttributeValue>>;
#[cfg(feature = "SKAttribute")]
#[unsafe(method(setAttributeValues:))]
#[unsafe(method_family = none)]
pub unsafe fn setAttributeValues(
&self,
attribute_values: &NSDictionary<NSString, SKAttributeValue>,
);
#[cfg(feature = "SKAttribute")]
#[unsafe(method(valueForAttributeNamed:))]
#[unsafe(method_family = none)]
pub unsafe fn valueForAttributeNamed(
&self,
key: &NSString,
) -> Option<Retained<SKAttributeValue>>;
#[cfg(feature = "SKAttribute")]
#[unsafe(method(setValue:forAttributeNamed:))]
#[unsafe(method_family = none)]
pub unsafe fn setValue_forAttributeNamed(&self, value: &SKAttributeValue, key: &NSString);
);
}
#[cfg(all(feature = "SKNode", feature = "objc2-app-kit"))]
#[cfg(target_os = "macos")]
impl SKEffectNode {
extern_methods!(
#[unsafe(method(init))]
#[unsafe(method_family = init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[unsafe(method(initWithCoder:))]
#[unsafe(method_family = init)]
pub unsafe fn initWithCoder(
this: Allocated<Self>,
a_decoder: &NSCoder,
) -> Option<Retained<Self>>;
#[unsafe(method(node))]
#[unsafe(method_family = none)]
pub unsafe fn node(mtm: MainThreadMarker) -> Retained<Self>;
#[unsafe(method(nodeWithFileNamed:))]
#[unsafe(method_family = none)]
pub unsafe fn nodeWithFileNamed(
filename: &NSString,
mtm: MainThreadMarker,
) -> Option<Retained<Self>>;
#[unsafe(method(nodeWithFileNamed:securelyWithClasses:andError:_))]
#[unsafe(method_family = none)]
pub unsafe fn nodeWithFileNamed_securelyWithClasses_andError(
filename: &NSString,
classes: &NSSet<AnyClass>,
mtm: MainThreadMarker,
) -> Result<Retained<Self>, Retained<NSError>>;
);
}
#[cfg(all(feature = "SKNode", feature = "objc2-app-kit"))]
#[cfg(target_os = "macos")]
impl SKEffectNode {
extern_methods!(
#[unsafe(method(new))]
#[unsafe(method_family = new)]
pub unsafe fn new(mtm: MainThreadMarker) -> Retained<Self>;
);
}