Я написал 3D-просмотрщик, используя Какао. Визуализация OpenGL выполняется в отдельном потоке, который создает свой собственный NSOpenGLContext.
Без обработки слоя метод drawRect трехмерного вида вызывается при обновлении, а поток OpenGL обновляет его, и все работает отлично ...
Теперь я должен реализовать приложение, используя слои Какао. Когда создается 3D NSView, создается подкласс NSOpenGLLayer и прикрепляется к представлению. Метод
(void)drawInOpenGLContext:NSOpenGLContext *)ctx
pixelFormat:(NSOpenGLPixelFormat *)pixelFormat
forLayerTime:(CFTimeInterval)timeInterval
displayTime:(const CVTimeStamp *)timeStamp;
вызывается Cocoa, но я не могу заставить мой поток OpenGL визуализировать что-либо.
Я пытался использовать контекст OpenGL, переданный drawInOpenGLContext в потоке OpenGL, я попытался сделать
[layer setOpenGLContext:ctx]
в потоке OpenGL с контекстом OpenGL, созданным в потоке и т. Д., Но ничего не работает.