5

私のGoogle検索のどれも役に立たなかったので、どうやらこれを試みたのは私だけです。次のように属性配列を初期化しているとします。

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

これらはすべて通常の Int です。確認しました。今私がするなら

let glPixelFormat = NSOpenGLPixelFormat(attributes: glPFAttributes)

コンパイラから次のエラー メッセージが表示されます。

「Int」は「NSOpenGLPixelFormatAttribute」と同一ではありません

どこかで間違えた場合、それは表示されません。

4

1 に答える 1

8

NSOpenGLPixelFormatAttributetypeAliasのですUInt32NSOpenGLPixelFormat初期化子は配列を受け取るため、配列を作成してすべてをNSOpenGLPixelFormatAttribute変換する必要があります。以下のコードは機能しますIntUInt32

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 に答える