CAOpenGLLayer не рисует - PullRequest
       14

CAOpenGLLayer не рисует

3 голосов
/ 31 июля 2011

Я рисую кадры в CAOpenGLLayer, все работает отлично! Но когда я создаю второй его экземпляр (в другом потоке и связываю его с другим CALayer), первый экземпляр останавливается для рисования (drawinCGLContext никогда не вызывался), но setNeedsDisplay регулярно вызывает для каждого слоя. Если я создаю третий экземпляр, то первый и второй не рисуют, а третий - хорошо. Я проверил, что setNeedsDisplay вызывается на 100%, а drawinCGLContext не вызывается для «старых» слоев и не понимает, как это происходит.

Вот как создается мой слой:

MyCAOpenGLLayer* layer = [MyCAOpenGLLayer new];

layer.asynchronous = YES;
layer.autoresizingMask = kCALayerWidthSizable | kCALayerHeightSizable;
layer.needsDisplayOnBoundsChange = YES;
[(CALayer*) wnd->getDrawingPrimitive() addSublayer:layer];              

А вот моя функция drawinCGLContext, если она может помочь (но проблемы, похоже, не было): http://pastebin.com/5uBRDm4w

setNeedsDisplay вызывается, когда новый кадр доступен в специальной функции обратного вызова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...