2016-04-18 3 views
-2

При попытке настроить контекст OpenGL в пользовательском NSOpenGLView любой вызов glGenVertexArrays, похоже, не записывает вывод, и он вызывает GL_INVALID_OPERATION. docs говорят, что glGenVertexArrays может указывать только GL_INVALID_VALUE, а не GL_INVALID_OPERATION, как и в случае. Кроме того, в том же коде glGenBuffers работает должным образом.Что делать с GL_INVALID_OPERATION на glGenVertexArrays?

// 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 
} 
Смежные вопросы