#[cfg(feature = "block2")]
use block2::*;
use objc2::__framework_prelude::*;
#[cfg(feature = "objc2-app-kit")]
use objc2_app_kit::*;
use objc2_foundation::*;
use objc2_metal::*;
use crate::*;
pub type MTKTextureLoaderError = NSString;
extern "C" {
pub static MTKTextureLoaderErrorDomain: &'static MTKTextureLoaderError;
}
extern "C" {
pub static MTKTextureLoaderErrorKey: &'static MTKTextureLoaderError;
}
pub type MTKTextureLoaderOption = NSString;
extern "C" {
pub static MTKTextureLoaderOptionAllocateMipmaps: &'static MTKTextureLoaderOption;
}
extern "C" {
pub static MTKTextureLoaderOptionGenerateMipmaps: &'static MTKTextureLoaderOption;
}
extern "C" {
pub static MTKTextureLoaderOptionSRGB: &'static MTKTextureLoaderOption;
}
extern "C" {
pub static MTKTextureLoaderOptionTextureUsage: &'static MTKTextureLoaderOption;
}
extern "C" {
pub static MTKTextureLoaderOptionTextureCPUCacheMode: &'static MTKTextureLoaderOption;
}
extern "C" {
pub static MTKTextureLoaderOptionTextureStorageMode: &'static MTKTextureLoaderOption;
}
pub type MTKTextureLoaderCubeLayout = NSString;
extern "C" {
pub static MTKTextureLoaderOptionCubeLayout: &'static MTKTextureLoaderOption;
}
extern "C" {
pub static MTKTextureLoaderCubeLayoutVertical: &'static MTKTextureLoaderCubeLayout;
}
pub type MTKTextureLoaderOrigin = NSString;
extern "C" {
pub static MTKTextureLoaderOptionOrigin: &'static MTKTextureLoaderOption;
}
extern "C" {
pub static MTKTextureLoaderOriginTopLeft: &'static MTKTextureLoaderOrigin;
}
extern "C" {
pub static MTKTextureLoaderOriginBottomLeft: &'static MTKTextureLoaderOrigin;
}
extern "C" {
pub static MTKTextureLoaderOriginFlippedVertically: &'static MTKTextureLoaderOrigin;
}
extern "C" {
pub static MTKTextureLoaderOptionLoadAsArray: &'static MTKTextureLoaderOption;
}
#[cfg(feature = "block2")]
pub type MTKTextureLoaderCallback =
*mut Block<dyn Fn(*mut ProtocolObject<dyn MTLTexture>, *mut NSError)>;
#[cfg(feature = "block2")]
pub type MTKTextureLoaderArrayCallback =
*mut Block<dyn Fn(NonNull<NSArray<ProtocolObject<dyn MTLTexture>>>, *mut NSError)>;
extern_class!(
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct MTKTextureLoader;
unsafe impl ClassType for MTKTextureLoader {
type Super = NSObject;
type Mutability = InteriorMutable;
}
);
unsafe impl NSObjectProtocol for MTKTextureLoader {}
extern_methods!(
unsafe impl MTKTextureLoader {
#[method_id(@__retain_semantics Other device)]
pub unsafe fn device(&self) -> Id<ProtocolObject<dyn MTLDevice>>;
#[method_id(@__retain_semantics Init init)]
pub unsafe fn init(this: Allocated<Self>) -> Id<Self>;
#[method_id(@__retain_semantics Init initWithDevice:)]
pub unsafe fn initWithDevice(
this: Allocated<Self>,
device: &ProtocolObject<dyn MTLDevice>,
) -> Id<Self>;
#[cfg(feature = "block2")]
#[method(newTextureWithContentsOfURL:options:completionHandler:)]
pub unsafe fn newTextureWithContentsOfURL_options_completionHandler(
&self,
url: &NSURL,
options: Option<&NSDictionary<MTKTextureLoaderOption, AnyObject>>,
completion_handler: MTKTextureLoaderCallback,
);
#[cfg(feature = "block2")]
#[method(newTextureWithName:scaleFactor:bundle:options:completionHandler:)]
pub unsafe fn newTextureWithName_scaleFactor_bundle_options_completionHandler(
&self,
name: &NSString,
scale_factor: CGFloat,
bundle: Option<&NSBundle>,
options: Option<&NSDictionary<MTKTextureLoaderOption, AnyObject>>,
completion_handler: MTKTextureLoaderCallback,
);
#[cfg(all(feature = "block2", feature = "objc2-app-kit"))]
#[method(newTextureWithName:scaleFactor:displayGamut:bundle:options:completionHandler:)]
pub unsafe fn newTextureWithName_scaleFactor_displayGamut_bundle_options_completionHandler(
&self,
name: &NSString,
scale_factor: CGFloat,
display_gamut: NSDisplayGamut,
bundle: Option<&NSBundle>,
options: Option<&NSDictionary<MTKTextureLoaderOption, AnyObject>>,
completion_handler: MTKTextureLoaderCallback,
);
#[cfg(feature = "block2")]
#[method(newTexturesWithContentsOfURLs:options:completionHandler:)]
pub unsafe fn newTexturesWithContentsOfURLs_options_completionHandler(
&self,
ur_ls: &NSArray<NSURL>,
options: Option<&NSDictionary<MTKTextureLoaderOption, AnyObject>>,
completion_handler: MTKTextureLoaderArrayCallback,
);
#[cfg(feature = "block2")]
#[method(newTexturesWithNames:scaleFactor:bundle:options:completionHandler:)]
pub unsafe fn newTexturesWithNames_scaleFactor_bundle_options_completionHandler(
&self,
names: &NSArray<NSString>,
scale_factor: CGFloat,
bundle: Option<&NSBundle>,
options: Option<&NSDictionary<MTKTextureLoaderOption, AnyObject>>,
completion_handler: MTKTextureLoaderArrayCallback,
);
#[cfg(all(feature = "block2", feature = "objc2-app-kit"))]
#[method(newTexturesWithNames:scaleFactor:displayGamut:bundle:options:completionHandler:)]
pub unsafe fn newTexturesWithNames_scaleFactor_displayGamut_bundle_options_completionHandler(
&self,
names: &NSArray<NSString>,
scale_factor: CGFloat,
display_gamut: NSDisplayGamut,
bundle: Option<&NSBundle>,
options: Option<&NSDictionary<MTKTextureLoaderOption, AnyObject>>,
completion_handler: MTKTextureLoaderArrayCallback,
);
#[cfg(feature = "block2")]
#[method(newTextureWithData:options:completionHandler:)]
pub unsafe fn newTextureWithData_options_completionHandler(
&self,
data: &NSData,
options: Option<&NSDictionary<MTKTextureLoaderOption, AnyObject>>,
completion_handler: MTKTextureLoaderCallback,
);
#[method_id(@__retain_semantics New newTextureWithContentsOfURL:options:error:_)]
pub unsafe fn newTextureWithContentsOfURL_options_error(
&self,
url: &NSURL,
options: Option<&NSDictionary<MTKTextureLoaderOption, AnyObject>>,
) -> Result<Id<ProtocolObject<dyn MTLTexture>>, Id<NSError>>;
#[method_id(@__retain_semantics New newTextureWithData:options:error:_)]
pub unsafe fn newTextureWithData_options_error(
&self,
data: &NSData,
options: Option<&NSDictionary<MTKTextureLoaderOption, AnyObject>>,
) -> Result<Id<ProtocolObject<dyn MTLTexture>>, Id<NSError>>;
#[method_id(@__retain_semantics New newTextureWithName:scaleFactor:bundle:options:error:_)]
pub unsafe fn newTextureWithName_scaleFactor_bundle_options_error(
&self,
name: &NSString,
scale_factor: CGFloat,
bundle: Option<&NSBundle>,
options: Option<&NSDictionary<MTKTextureLoaderOption, AnyObject>>,
) -> Result<Id<ProtocolObject<dyn MTLTexture>>, Id<NSError>>;
#[cfg(feature = "objc2-app-kit")]
#[method_id(@__retain_semantics New newTextureWithName:scaleFactor:displayGamut:bundle:options:error:_)]
pub unsafe fn newTextureWithName_scaleFactor_displayGamut_bundle_options_error(
&self,
name: &NSString,
scale_factor: CGFloat,
display_gamut: NSDisplayGamut,
bundle: Option<&NSBundle>,
options: Option<&NSDictionary<MTKTextureLoaderOption, AnyObject>>,
) -> Result<Id<ProtocolObject<dyn MTLTexture>>, Id<NSError>>;
}
);
extern_methods!(
unsafe impl MTKTextureLoader {
#[method_id(@__retain_semantics New new)]
pub unsafe fn new() -> Id<Self>;
}
);