Класс NSOpenGLView
имеет свойство чтения / записи openGLContext
, и, как я читаю документацию, получатель никогда не должен возвращать nil:
Если у получателя нет связанного объекта контекста,новый объект NSOpenGLContext
создан.Новый объект инициализируется с информацией о формате пикселя получателя.
В macOS 10.13 это кажется правдой, но в macOS 10.9 он возвращает nil после того, как я добавляю представление в окно.То есть, если я сделаю это:
NSOpenGLView* glView = [[NSOpenGLView alloc]
initWithFrame: NSMakeRect( 0.0, 0.0, 100.0, 100.0 )
pixelFormat: [NSOpenGLView defaultPixelFormat]];
NSLog(@"Pixel format %@, context %@", glView.pixelFormat, glView.openGLContext );
[self.host addSubview: glView];
NSLog(@"Pixel format %@, context %@", glView.pixelFormat, glView.openGLContext );
Затем во втором журнале контекст будет нулевым.Есть ли какое-нибудь исправление?Создание собственного NSOpenGLContext
и назначение его не помогает.Я убедился, что представление хоста является частью окна и что windowNumber
является положительным.