//! This file has been automatically generated by `objc2`'s `header-translator`.
//! DO NOT EDIT
use core::ffi::*;
use objc2::__framework_prelude::*;

use crate::*;

/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsopenglglobaloption?language=objc)
#[deprecated = "OpenGL API deprecated; please use Metal and MetalKit.  (Define GL_SILENCE_DEPRECATION to silence these warnings.)"]
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct NSOpenGLGlobalOption(pub u32);
impl NSOpenGLGlobalOption {
    #[deprecated = "OpenGL API deprecated; please use Metal and MetalKit.  (Define GL_SILENCE_DEPRECATION to silence these warnings.)"]
    #[doc(alias = "NSOpenGLGOFormatCacheSize")]
    pub const GLGOFormatCacheSize: Self = Self(501);
    #[deprecated = "OpenGL API deprecated; please use Metal and MetalKit.  (Define GL_SILENCE_DEPRECATION to silence these warnings.)"]
    #[doc(alias = "NSOpenGLGOClearFormatCache")]
    pub const GLGOClearFormatCache: Self = Self(502);
    #[deprecated = "OpenGL API deprecated; please use Metal and MetalKit.  (Define GL_SILENCE_DEPRECATION to silence these warnings.)"]
    #[doc(alias = "NSOpenGLGORetainRenderers")]
    pub const GLGORetainRenderers: Self = Self(503);
    #[deprecated = "OpenGL API deprecated; please use Metal and MetalKit.  (Define GL_SILENCE_DEPRECATION to silence these warnings.)"]
    #[doc(alias = "NSOpenGLGOUseBuildCache")]
    pub const GLGOUseBuildCache: Self = Self(506);
    #[deprecated]
    #[doc(alias = "NSOpenGLGOResetLibrary")]
    pub const GLGOResetLibrary: Self = Self(504);
}

unsafe impl Encode for NSOpenGLGlobalOption {
    const ENCODING: Encoding = u32::ENCODING;
}

unsafe impl RefEncode for NSOpenGLGlobalOption {
    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}

/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsopenglpfaallrenderers?language=objc)
#[deprecated = "OpenGL API deprecated; please use Metal and MetalKit.  (Define GL_SILENCE_DEPRECATION to silence these warnings.)"]
pub const NSOpenGLPFAAllRenderers: c_uint = 1;
/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsopenglpfatriplebuffer?language=objc)
#[deprecated = "OpenGL API deprecated; please use Metal and MetalKit.  (Define GL_SILENCE_DEPRECATION to silence these warnings.)"]
pub const NSOpenGLPFATripleBuffer: c_uint = 3;
/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsopenglpfadoublebuffer?language=objc)
#[deprecated = "OpenGL API deprecated; please use Metal and MetalKit.  (Define GL_SILENCE_DEPRECATION to silence these warnings.)"]
pub const NSOpenGLPFADoubleBuffer: c_uint = 5;
/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsopenglpfaauxbuffers?language=objc)
#[deprecated = "OpenGL API deprecated; please use Metal and MetalKit.  (Define GL_SILENCE_DEPRECATION to silence these warnings.)"]
pub const NSOpenGLPFAAuxBuffers: c_uint = 7;
/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsopenglpfacolorsize?language=objc)
#[deprecated = "OpenGL API deprecated; please use Metal and MetalKit.  (Define GL_SILENCE_DEPRECATION to silence these warnings.)"]
pub const NSOpenGLPFAColorSize: c_uint = 8;
/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsopenglpfaalphasize?language=objc)
#[deprecated = "OpenGL API deprecated; please use Metal and MetalKit.  (Define GL_SILENCE_DEPRECATION to silence these warnings.)"]
pub const NSOpenGLPFAAlphaSize: c_uint = 11;
/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsopenglpfadepthsize?language=objc)
#[deprecated = "OpenGL API deprecated; please use Metal and MetalKit.  (Define GL_SILENCE_DEPRECATION to silence these warnings.)"]
pub const NSOpenGLPFADepthSize: c_uint = 12;
/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsopenglpfastencilsize?language=objc)
#[deprecated = "OpenGL API deprecated; please use Metal and MetalKit.  (Define GL_SILENCE_DEPRECATION to silence these warnings.)"]
pub const NSOpenGLPFAStencilSize: c_uint = 13;
/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsopenglpfaaccumsize?language=objc)
#[deprecated = "OpenGL API deprecated; please use Metal and MetalKit.  (Define GL_SILENCE_DEPRECATION to silence these warnings.)"]
pub const NSOpenGLPFAAccumSize: c_uint = 14;
/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsopenglpfaminimumpolicy?language=objc)
#[deprecated = "OpenGL API deprecated; please use Metal and MetalKit.  (Define GL_SILENCE_DEPRECATION to silence these warnings.)"]
pub const NSOpenGLPFAMinimumPolicy: c_uint = 51;
/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsopenglpfamaximumpolicy?language=objc)
#[deprecated = "OpenGL API deprecated; please use Metal and MetalKit.  (Define GL_SILENCE_DEPRECATION to silence these warnings.)"]
pub const NSOpenGLPFAMaximumPolicy: c_uint = 52;
/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsopenglpfasamplebuffers?language=objc)
#[deprecated = "OpenGL API deprecated; please use Metal and MetalKit.  (Define GL_SILENCE_DEPRECATION to silence these warnings.)"]
pub const NSOpenGLPFASampleBuffers: c_uint = 55;
/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsopenglpfasamples?language=objc)
#[deprecated = "OpenGL API deprecated; please use Metal and MetalKit.  (Define GL_SILENCE_DEPRECATION to silence these warnings.)"]
pub const NSOpenGLPFASamples: c_uint = 56;
/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsopenglpfaauxdepthstencil?language=objc)
#[deprecated = "OpenGL API deprecated; please use Metal and MetalKit.  (Define GL_SILENCE_DEPRECATION to silence these warnings.)"]
pub const NSOpenGLPFAAuxDepthStencil: c_uint = 57;
/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsopenglpfacolorfloat?language=objc)
#[deprecated = "OpenGL API deprecated; please use Metal and MetalKit.  (Define GL_SILENCE_DEPRECATION to silence these warnings.)"]
pub const NSOpenGLPFAColorFloat: c_uint = 58;
/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsopenglpfamultisample?language=objc)
#[deprecated = "OpenGL API deprecated; please use Metal and MetalKit.  (Define GL_SILENCE_DEPRECATION to silence these warnings.)"]
pub const NSOpenGLPFAMultisample: c_uint = 59;
/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsopenglpfasupersample?language=objc)
#[deprecated = "OpenGL API deprecated; please use Metal and MetalKit.  (Define GL_SILENCE_DEPRECATION to silence these warnings.)"]
pub const NSOpenGLPFASupersample: c_uint = 60;
/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsopenglpfasamplealpha?language=objc)
#[deprecated = "OpenGL API deprecated; please use Metal and MetalKit.  (Define GL_SILENCE_DEPRECATION to silence these warnings.)"]
pub const NSOpenGLPFASampleAlpha: c_uint = 61;
/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsopenglpfarendererid?language=objc)
#[deprecated = "OpenGL API deprecated; please use Metal and MetalKit.  (Define GL_SILENCE_DEPRECATION to silence these warnings.)"]
pub const NSOpenGLPFARendererID: c_uint = 70;
/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsopenglpfanorecovery?language=objc)
#[deprecated = "OpenGL API deprecated; please use Metal and MetalKit.  (Define GL_SILENCE_DEPRECATION to silence these warnings.)"]
pub const NSOpenGLPFANoRecovery: c_uint = 72;
/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsopenglpfaaccelerated?language=objc)
#[deprecated = "OpenGL API deprecated; please use Metal and MetalKit.  (Define GL_SILENCE_DEPRECATION to silence these warnings.)"]
pub const NSOpenGLPFAAccelerated: c_uint = 73;
/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsopenglpfaclosestpolicy?language=objc)
#[deprecated = "OpenGL API deprecated; please use Metal and MetalKit.  (Define GL_SILENCE_DEPRECATION to silence these warnings.)"]
pub const NSOpenGLPFAClosestPolicy: c_uint = 74;
/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsopenglpfabackingstore?language=objc)
#[deprecated = "OpenGL API deprecated; please use Metal and MetalKit.  (Define GL_SILENCE_DEPRECATION to silence these warnings.)"]
pub const NSOpenGLPFABackingStore: c_uint = 76;
/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsopenglpfascreenmask?language=objc)
#[deprecated = "OpenGL API deprecated; please use Metal and MetalKit.  (Define GL_SILENCE_DEPRECATION to silence these warnings.)"]
pub const NSOpenGLPFAScreenMask: c_uint = 84;
/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsopenglpfaallowofflinerenderers?language=objc)
#[deprecated = "OpenGL API deprecated; please use Metal and MetalKit.  (Define GL_SILENCE_DEPRECATION to silence these warnings.)"]
pub const NSOpenGLPFAAllowOfflineRenderers: c_uint = 96;
/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsopenglpfaacceleratedcompute?language=objc)
#[deprecated = "OpenGL API deprecated; please use Metal and MetalKit.  (Define GL_SILENCE_DEPRECATION to silence these warnings.)"]
pub const NSOpenGLPFAAcceleratedCompute: c_uint = 97;
/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsopenglpfaopenglprofile?language=objc)
#[deprecated = "OpenGL API deprecated; please use Metal and MetalKit.  (Define GL_SILENCE_DEPRECATION to silence these warnings.)"]
pub const NSOpenGLPFAOpenGLProfile: c_uint = 99;
/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsopenglpfavirtualscreencount?language=objc)
#[deprecated = "OpenGL API deprecated; please use Metal and MetalKit.  (Define GL_SILENCE_DEPRECATION to silence these warnings.)"]
pub const NSOpenGLPFAVirtualScreenCount: c_uint = 128;
/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsopenglpfastereo?language=objc)
#[deprecated]
pub const NSOpenGLPFAStereo: c_uint = 6;
/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsopenglpfaoffscreen?language=objc)
#[deprecated]
pub const NSOpenGLPFAOffScreen: c_uint = 53;
/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsopenglpfafullscreen?language=objc)
#[deprecated]
pub const NSOpenGLPFAFullScreen: c_uint = 54;
/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsopenglpfasinglerenderer?language=objc)
#[deprecated]
pub const NSOpenGLPFASingleRenderer: c_uint = 71;
/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsopenglpfarobust?language=objc)
#[deprecated]
pub const NSOpenGLPFARobust: c_uint = 75;
/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsopenglpfampsafe?language=objc)
#[deprecated]
pub const NSOpenGLPFAMPSafe: c_uint = 78;
/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsopenglpfawindow?language=objc)
#[deprecated]
pub const NSOpenGLPFAWindow: c_uint = 80;
/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsopenglpfamultiscreen?language=objc)
#[deprecated]
pub const NSOpenGLPFAMultiScreen: c_uint = 81;
/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsopenglpfacompliant?language=objc)
#[deprecated]
pub const NSOpenGLPFACompliant: c_uint = 83;
/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsopenglpfapixelbuffer?language=objc)
#[deprecated]
pub const NSOpenGLPFAPixelBuffer: c_uint = 90;
/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsopenglpfaremotepixelbuffer?language=objc)
#[deprecated]
pub const NSOpenGLPFARemotePixelBuffer: c_uint = 91;

/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsopenglpixelformatattribute?language=objc)
pub type NSOpenGLPixelFormatAttribute = u32;

/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsopenglprofileversionlegacy?language=objc)
#[deprecated = "OpenGL API deprecated; please use Metal and MetalKit.  (Define GL_SILENCE_DEPRECATION to silence these warnings.)"]
pub const NSOpenGLProfileVersionLegacy: c_uint = 0x1000;
/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsopenglprofileversion3_2core?language=objc)
#[deprecated = "OpenGL API deprecated; please use Metal and MetalKit.  (Define GL_SILENCE_DEPRECATION to silence these warnings.)"]
pub const NSOpenGLProfileVersion3_2Core: c_uint = 0x3200;
/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsopenglprofileversion4_1core?language=objc)
#[deprecated = "OpenGL API deprecated; please use Metal and MetalKit.  (Define GL_SILENCE_DEPRECATION to silence these warnings.)"]
pub const NSOpenGLProfileVersion4_1Core: c_uint = 0x4100;

/// ***************
/// * NSOpenGLContext
/// ***************
///
/// See also [Apple's documentation](https://developer.apple.com/documentation/appkit/nsopenglcontextparameter?language=objc)
// NS_ENUM
#[deprecated = "OpenGL API deprecated; please use Metal and MetalKit.  (Define GL_SILENCE_DEPRECATION to silence these warnings.)"]
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct NSOpenGLContextParameter(pub NSInteger);
impl NSOpenGLContextParameter {
    #[deprecated = "OpenGL API deprecated; please use Metal and MetalKit.  (Define GL_SILENCE_DEPRECATION to silence these warnings.)"]
    #[doc(alias = "NSOpenGLContextParameterSwapInterval")]
    pub const SwapInterval: Self = Self(222);
    #[deprecated = "OpenGL API deprecated; please use Metal and MetalKit.  (Define GL_SILENCE_DEPRECATION to silence these warnings.)"]
    #[doc(alias = "NSOpenGLContextParameterSurfaceOrder")]
    pub const SurfaceOrder: Self = Self(235);
    #[deprecated = "OpenGL API deprecated; please use Metal and MetalKit.  (Define GL_SILENCE_DEPRECATION to silence these warnings.)"]
    #[doc(alias = "NSOpenGLContextParameterSurfaceOpacity")]
    pub const SurfaceOpacity: Self = Self(236);
    #[deprecated = "OpenGL API deprecated; please use Metal and MetalKit.  (Define GL_SILENCE_DEPRECATION to silence these warnings.)"]
    #[doc(alias = "NSOpenGLContextParameterSurfaceBackingSize")]
    pub const SurfaceBackingSize: Self = Self(304);
    #[deprecated = "OpenGL API deprecated; please use Metal and MetalKit.  (Define GL_SILENCE_DEPRECATION to silence these warnings.)"]
    #[doc(alias = "NSOpenGLContextParameterReclaimResources")]
    pub const ReclaimResources: Self = Self(308);
    #[deprecated = "OpenGL API deprecated; please use Metal and MetalKit.  (Define GL_SILENCE_DEPRECATION to silence these warnings.)"]
    #[doc(alias = "NSOpenGLContextParameterCurrentRendererID")]
    pub const CurrentRendererID: Self = Self(309);
    #[deprecated = "OpenGL API deprecated; please use Metal and MetalKit.  (Define GL_SILENCE_DEPRECATION to silence these warnings.)"]
    #[doc(alias = "NSOpenGLContextParameterGPUVertexProcessing")]
    pub const GPUVertexProcessing: Self = Self(310);
    #[deprecated = "OpenGL API deprecated; please use Metal and MetalKit.  (Define GL_SILENCE_DEPRECATION to silence these warnings.)"]
    #[doc(alias = "NSOpenGLContextParameterGPUFragmentProcessing")]
    pub const GPUFragmentProcessing: Self = Self(311);
    #[deprecated = "OpenGL API deprecated; please use Metal and MetalKit.  (Define GL_SILENCE_DEPRECATION to silence these warnings.)"]
    #[doc(alias = "NSOpenGLContextParameterHasDrawable")]
    pub const HasDrawable: Self = Self(314);
    #[deprecated = "OpenGL API deprecated; please use Metal and MetalKit.  (Define GL_SILENCE_DEPRECATION to silence these warnings.)"]
    #[doc(alias = "NSOpenGLContextParameterMPSwapsInFlight")]
    pub const MPSwapsInFlight: Self = Self(315);
    #[deprecated]
    #[doc(alias = "NSOpenGLContextParameterSwapRectangle")]
    pub const SwapRectangle: Self = Self(200);
    #[deprecated]
    #[doc(alias = "NSOpenGLContextParameterSwapRectangleEnable")]
    pub const SwapRectangleEnable: Self = Self(201);
    #[deprecated]
    #[doc(alias = "NSOpenGLContextParameterRasterizationEnable")]
    pub const RasterizationEnable: Self = Self(221);
    #[deprecated]
    #[doc(alias = "NSOpenGLContextParameterStateValidation")]
    pub const StateValidation: Self = Self(301);
    #[deprecated]
    #[doc(alias = "NSOpenGLContextParameterSurfaceSurfaceVolatile")]
    pub const SurfaceSurfaceVolatile: Self = Self(306);
}

unsafe impl Encode for NSOpenGLContextParameter {
    const ENCODING: Encoding = NSInteger::ENCODING;
}

unsafe impl RefEncode for NSOpenGLContextParameter {
    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}

/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsopenglcpswapinterval?language=objc)
pub static NSOpenGLCPSwapInterval: NSOpenGLContextParameter =
    NSOpenGLContextParameter(NSOpenGLContextParameter::SwapInterval.0);

/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsopenglcpsurfaceorder?language=objc)
pub static NSOpenGLCPSurfaceOrder: NSOpenGLContextParameter =
    NSOpenGLContextParameter(NSOpenGLContextParameter::SurfaceOrder.0);

/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsopenglcpsurfaceopacity?language=objc)
pub static NSOpenGLCPSurfaceOpacity: NSOpenGLContextParameter =
    NSOpenGLContextParameter(NSOpenGLContextParameter::SurfaceOpacity.0);

/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsopenglcpsurfacebackingsize?language=objc)
pub static NSOpenGLCPSurfaceBackingSize: NSOpenGLContextParameter =
    NSOpenGLContextParameter(NSOpenGLContextParameter::SurfaceBackingSize.0);

/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsopenglcpreclaimresources?language=objc)
pub static NSOpenGLCPReclaimResources: NSOpenGLContextParameter =
    NSOpenGLContextParameter(NSOpenGLContextParameter::ReclaimResources.0);

/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsopenglcpcurrentrendererid?language=objc)
pub static NSOpenGLCPCurrentRendererID: NSOpenGLContextParameter =
    NSOpenGLContextParameter(NSOpenGLContextParameter::CurrentRendererID.0);

/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsopenglcpgpuvertexprocessing?language=objc)
pub static NSOpenGLCPGPUVertexProcessing: NSOpenGLContextParameter =
    NSOpenGLContextParameter(NSOpenGLContextParameter::GPUVertexProcessing.0);

/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsopenglcpgpufragmentprocessing?language=objc)
pub static NSOpenGLCPGPUFragmentProcessing: NSOpenGLContextParameter =
    NSOpenGLContextParameter(NSOpenGLContextParameter::GPUFragmentProcessing.0);

/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsopenglcphasdrawable?language=objc)
pub static NSOpenGLCPHasDrawable: NSOpenGLContextParameter =
    NSOpenGLContextParameter(NSOpenGLContextParameter::HasDrawable.0);

/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsopenglcpmpswapsinflight?language=objc)
pub static NSOpenGLCPMPSwapsInFlight: NSOpenGLContextParameter =
    NSOpenGLContextParameter(NSOpenGLContextParameter::MPSwapsInFlight.0);

/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsopenglcpswaprectangle?language=objc)
pub static NSOpenGLCPSwapRectangle: NSOpenGLContextParameter =
    NSOpenGLContextParameter(NSOpenGLContextParameter::SwapRectangle.0);

/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsopenglcpswaprectangleenable?language=objc)
pub static NSOpenGLCPSwapRectangleEnable: NSOpenGLContextParameter =
    NSOpenGLContextParameter(NSOpenGLContextParameter::SwapRectangleEnable.0);

/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsopenglcprasterizationenable?language=objc)
pub static NSOpenGLCPRasterizationEnable: NSOpenGLContextParameter =
    NSOpenGLContextParameter(NSOpenGLContextParameter::RasterizationEnable.0);

/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsopenglcpstatevalidation?language=objc)
pub static NSOpenGLCPStateValidation: NSOpenGLContextParameter =
    NSOpenGLContextParameter(NSOpenGLContextParameter::StateValidation.0);

/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsopenglcpsurfacesurfacevolatile?language=objc)
pub static NSOpenGLCPSurfaceSurfaceVolatile: NSOpenGLContextParameter =
    NSOpenGLContextParameter(NSOpenGLContextParameter::SurfaceSurfaceVolatile.0);
