У меня есть приложение Cocoa, которое использует Core Animation для различных пользовательских анимаций (вращение, перспектива и т. Д.). Приложение позволяет пользователю перетаскивать файлы из окна приложения на рабочий стол.
Время от времени, когда я перетаскиваю файл из своего приложения на рабочий стол и жду около 2 секунд, прежде чем сбросить файл, я замечаю очень странные ошибки отображения (см. Скриншот).
Я захватил их с помощью записи экрана. Они кажутся фрагментами более ранней анимации, сделанной моим приложением.
Я могу последовательно воспроизвести его: ошибка появляется, когда у меня одновременно работают другие конкретные приложения. Два из них:
Возможно ли, что эти приложения также используют Core Animation / OpenGL таким образом, что конфликтует с моим приложением (или, возможно, потребляет слишком много памяти OpenGL)?
Я запускаю операцию перетаскивания в представлении размещения слоя следующим образом:
NSPoint pointOfClick = [self convertPoint:[theEvent locationInWindow] fromView:nil];
NSImage *image = [NSImage imageNamed:NSImageNameInfo]; // For testing purposes only
[image setSize:NSMakeSize(50.0, 50.0)];
[self dragImage:image
at:pointOfClick
offset:NSZeroSize
event:theEvent
pasteboard:pboard
source:self
slideBack:NO];