Название: Мигание QGLWdget Отправлено: Igors от Январь 11, 2015, 19:41 Добрый день
QGLWidget неприятно мигает при ресайзе окна в котором он находится. Сначала он перерисовывается черным или мусором, а потом уже вызывается все как положено (paintEvent, drawGL). Потыкал разные флаги - не помогло. Ладно, погнал в отладчике, дошел до места Код Последняя длинная строка гадит на экране - но попасть "внутрь" я не могу, отладчик туда не заходит. Как мне узнать куда отдано управление? Спасибо Название: Re: Мигание QGLWdget Отправлено: kambala от Январь 11, 2015, 20:14 это ж уже внутренности нативного фреймворка, класса NSWindow. или интересует именно ассемблерный код?
Название: Re: Мигание QGLWdget Отправлено: Igors от Январь 12, 2015, 10:51 это ж уже внутренности нативного фреймворка, класса NSWindow. или интересует именно ассемблерный код? Ну плутать в дебрях ОС (в ассемблере) в мои планы не входит :) Но может он где-то зовет что-то типа callback.Собственно QGLWdget здесь ни при чем, он просто отрисовывается значительно медленнее и проблема становится видна невооруженным глазом. Вот тестовый пример Код Первая картинка - начальное окно. Вторая - после вызова resize, Третья - после перерисовки. Т.е. сначала окно масштабится как bitmap и рисуется (c QGLWidget это не катит, поэтому мусор) - и только потом цивильная перерисовка через paintEvent. Как избавиться от этого навязчивого сервиса? (на Вындоуз его нет) Название: Re: Мигание QGLWdget Отправлено: Igors от Январь 12, 2015, 14:33 Цитировать you can use either [NSWindow disableScreenUpdatesUntilFlush] or the global NSDisableScreenUpdates() and NSEnableScreenUpdates() functions to prevent the screen updating until you're ready. Не имеет эффекта (а так логично выглядит :)). Ну setUpdatesEbabled конечно тоже отдыхает.. |