Apparently I'm the only one to attempt this, as none of my Google searches turned up anything helpful. Assume I'm initializing an attribute array like this:
let glPFAttributes = [
    NSOpenGLPFAAccelerated,
    NSOpenGLPFADoubleBuffer,
    NSOpenGLPFAColorSize, 48,
    NSOpenGLPFAAlphaSize, 16,
    NSOpenGLPFAMultisample,
    NSOpenGLPFASampleBuffers, 1,
    NSOpenGLPFASamples, 4,
    NSOpenGLPFAMinimumPolicy,
    0
]
These things are all regular Ints, I've checked. Now if I do
let glPixelFormat = NSOpenGLPixelFormat(attributes: glPFAttributes)
the compiler gives me this error message:
'Int' is not identical to 'NSOpenGLPixelFormatAttribute'
If I made a mistake somewhere, I'm not seeing it.
NSOpenGLPixelFormatAttribute is typeAlias of UInt32. NSOpenGLPixelFormat intializer takes array of NSOpenGLPixelFormatAttribute so you need to make array and convert all Int to UInt32.Below code will work
let glPFAttributes:[NSOpenGLPixelFormatAttribute] = [
    UInt32(NSOpenGLPFAAccelerated),
    UInt32(NSOpenGLPFADoubleBuffer),
    UInt32(NSOpenGLPFAColorSize), UInt32(48),
    UInt32(NSOpenGLPFAAlphaSize), UInt32(16),
    UInt32(NSOpenGLPFAMultisample),
    UInt32(NSOpenGLPFASampleBuffers), UInt32(1),
    UInt32(NSOpenGLPFASamples), UInt32(4),
    UInt32(NSOpenGLPFAMinimumPolicy),
    UInt32(0)
]
let glPixelFormat = NSOpenGLPixelFormat(attributes: glPFAttributes)
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With