use core::ffi::*;
use core::ptr::NonNull;
use objc2::__framework_prelude::*;
#[cfg(feature = "objc2-metal")]
use objc2_metal::*;
use crate::*;
extern_class!(
#[unsafe(super(NSObject))]
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct CP_OBJECT_cp_layer_renderer_capabilities;
);
extern_conformance!(
unsafe impl NSObjectProtocol for CP_OBJECT_cp_layer_renderer_capabilities {}
);
impl CP_OBJECT_cp_layer_renderer_capabilities {
extern_methods!(
#[unsafe(method(init))]
#[unsafe(method_family = init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[unsafe(method(new))]
#[unsafe(method_family = new)]
pub unsafe fn new() -> Retained<Self>;
);
}
pub type cp_layer_renderer_capabilities_t = CP_OBJECT_cp_layer_renderer_capabilities;
extern "C-unwind" {
pub fn cp_layer_renderer_capabilities_supports_foveation(
layer_capabilities: &cp_layer_renderer_capabilities_t,
) -> bool;
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct cp_supported_color_formats_options(pub u32);
bitflags::bitflags! {
impl cp_supported_color_formats_options: u32 {
#[doc(alias = "cp_supported_color_formats_options_none")]
const none = 0;
#[doc(alias = "cp_supported_color_formats_options_progressive_immersion_enabled")]
const progressive_immersion_enabled = 1<<0;
}
}
unsafe impl Encode for cp_supported_color_formats_options {
const ENCODING: Encoding = u32::ENCODING;
}
unsafe impl RefEncode for cp_supported_color_formats_options {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
extern "C-unwind" {
pub fn cp_layer_renderer_capabilities_supported_color_formats_count_with_options(
layer_capabilities: &cp_layer_renderer_capabilities_t,
options: cp_supported_color_formats_options,
) -> usize;
}
extern "C-unwind" {
pub fn cp_layer_renderer_capabilities_supported_color_formats_count(
layer_capabilities: &cp_layer_renderer_capabilities_t,
) -> usize;
}
extern "C-unwind" {
#[cfg(feature = "objc2-metal")]
pub fn cp_layer_renderer_capabilities_supported_color_format_with_options(
layer_capabilities: &cp_layer_renderer_capabilities_t,
options: cp_supported_color_formats_options,
index: usize,
) -> MTLPixelFormat;
}
extern "C-unwind" {
#[cfg(feature = "objc2-metal")]
pub fn cp_layer_renderer_capabilities_supported_color_format(
layer_capabilities: &cp_layer_renderer_capabilities_t,
index: usize,
) -> MTLPixelFormat;
}
extern "C-unwind" {
pub fn cp_layer_renderer_capabilities_supported_depth_formats_count(
layer_capabilities: &cp_layer_renderer_capabilities_t,
) -> usize;
}
extern "C-unwind" {
#[cfg(feature = "objc2-metal")]
pub fn cp_layer_renderer_capabilities_supported_depth_format(
layer_capabilities: &cp_layer_renderer_capabilities_t,
index: usize,
) -> MTLPixelFormat;
}
extern "C-unwind" {
pub fn cp_layer_renderer_capabilities_supported_tracking_areas_formats_count(
layer_capabilities: &cp_layer_renderer_capabilities_t,
) -> usize;
}
extern "C-unwind" {
#[cfg(feature = "objc2-metal")]
pub fn cp_layer_renderer_capabilities_supported_tracking_areas_format(
layer_capabilities: &cp_layer_renderer_capabilities_t,
index: usize,
) -> MTLPixelFormat;
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct cp_supported_layouts_options(pub u32);
bitflags::bitflags! {
impl cp_supported_layouts_options: u32 {
#[doc(alias = "cp_supported_layouts_options_none")]
const none = 0;
#[doc(alias = "cp_supported_layouts_options_foveation_enabled")]
const foveation_enabled = 1<<0;
#[doc(alias = "cp_supported_layouts_options_progressive_immersion_enabled")]
const progressive_immersion_enabled = 1<<1;
}
}
unsafe impl Encode for cp_supported_layouts_options {
const ENCODING: Encoding = u32::ENCODING;
}
unsafe impl RefEncode for cp_supported_layouts_options {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
extern "C-unwind" {
pub fn cp_layer_renderer_capabilities_supported_layouts_count(
layer_capabilities: &cp_layer_renderer_capabilities_t,
options: cp_supported_layouts_options,
) -> usize;
}
extern "C-unwind" {
#[cfg(feature = "layer_renderer_layout")]
pub fn cp_layer_renderer_capabilities_supported_layout(
layer_capabilities: &cp_layer_renderer_capabilities_t,
options: cp_supported_layouts_options,
index: usize,
) -> cp_layer_renderer_layout;
}
extern "C-unwind" {
pub fn cp_layer_renderer_capabilities_supported_minimum_near_plane_distance(
layer_capabilities: &cp_layer_renderer_capabilities_t,
) -> c_float;
}
extern "C-unwind" {
pub fn cp_layer_renderer_capabilities_drawable_render_context_supported_stencil_formats_count(
layer_capabilities: &cp_layer_renderer_capabilities_t,
) -> usize;
}
extern "C-unwind" {
#[cfg(feature = "objc2-metal")]
pub fn cp_layer_renderer_capabilities_drawable_render_context_supported_stencil_format(
layer_capabilities: &cp_layer_renderer_capabilities_t,
index: usize,
) -> MTLPixelFormat;
}
extern "C-unwind" {
#[cfg(feature = "cp_types")]
pub fn cp_layer_renderer_capabilities_get_default_render_quality(
layer_capabilities: &cp_layer_renderer_capabilities_t,
) -> cp_render_quality_t;
}