5

显然我是唯一一个尝试这个的人,因为我的谷歌搜索都没有发现任何有用的东西。假设我正在初始化一个属性数组,如下所示:

let glPFAttributes = [
    NSOpenGLPFAAccelerated,
    NSOpenGLPFADoubleBuffer,
    NSOpenGLPFAColorSize, 48,
    NSOpenGLPFAAlphaSize, 16,
    NSOpenGLPFAMultisample,
    NSOpenGLPFASampleBuffers, 1,
    NSOpenGLPFASamples, 4,
    NSOpenGLPFAMinimumPolicy,
    0
]

这些东西都是普通的整数,我已经检查过了。现在如果我这样做

let glPixelFormat = NSOpenGLPixelFormat(attributes: glPFAttributes)

编译器给了我这个错误信息:

“Int”与“NSOpenGLPixelFormatAttribute”不同

如果我在某个地方犯了错误,我不会看到它。

4

1 回答 1

8

NSOpenGLPixelFormatAttribute属于. typeAlias_ 初始化程序需要数组,因此您需要制作数组并将所有内容转换为。下面的代码将起作用UInt32NSOpenGLPixelFormatNSOpenGLPixelFormatAttributeIntUInt32

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)
于 2014-10-25T14:53:51.047 回答