2016-04-18 11 views
-2

カスタムNSOpenGLView内でOpenGLコンテキストを設定しようとすると、glGenVertexArraysを呼び出すと出力が書き込まれないようで、GL_INVALID_OPERATIONが発生します。 docsは、glGenVertexArraysGL_INVALID_VALUEとしか表示できず、GL_INVALID_OPERATIONではないことを示しています。また、同じコードでは、glGenBuffersが期待通りに動作します。glGenVertexArraysでGL_INVALID_OPERATIONをどうすればいいですか?

// within NSOpenGLView.prepareOpenGL: 
glGenBuffers(1, &vbo); 
// glGetError() == 0 

glGenVertexArrays(1, &vao); 
// glGetError() == GL_INVALID_OPERATION 

どうして頂点配列を正しく生成するには?

答えて

1

フレームワークは、私が従来のプロファイルを使いたいと思ったようです。私の問題は、ビューのコンストラクタでのピクセルフォーマットを指定された解決なかった何

required init?(coder: NSCoder) { 
    let attributes = [ 
     UInt32(NSOpenGLPFADoubleBuffer), 
     UInt32(NSOpenGLPFAOpenGLProfile), UInt32(NSOpenGLProfileVersion3_2Core), 
     0 
    ] 
    let pixelFormat = NSOpenGLPixelFormat(attributes: attributes) 

    super.init(coder: coder) 

    self.pixelFormat = pixelFormat 
}