Название: Индикатор "Drawing Objects" Отправлено: Igors от Апрель 05, 2022, 13:33 Добрый день
По каким-то причинам окно индикатора не показывается, а если было показано "до того" - не обновляется. Сама операция - рисование OpenGL (стандартно, через paintGL), как говорят, "по идее" такой проблемы быть не должно. Заграбастал буфер окна в файл (через QBackingStore) там все норм, обновлено. А вот на экране - тишина. По ходу дела вопрос: ну вот сделали Qevent::UpdateRequest, он позвал Paint(ы), буфер готов, кто (или как, или в какой момент) его шлепает на экран? (хотя бы на OSX) Спасибо Название: Re: Индикатор "Drawing Objects" Отправлено: sergek от Апрель 05, 2022, 20:38 Может, QApplication::processEvents() ?
Название: Re: Индикатор "Drawing Objects" Отправлено: kambala от Апрель 05, 2022, 23:22 в cocoa нативный способ заставить вью перерисоваться — послать ему -setNeedsDisplay, что в свою очередь вызовет -drawInRect:
Название: Re: Индикатор "Drawing Objects" Отправлено: Igors от Апрель 06, 2022, 12:59 Может, QApplication::processEvents() ? Так и делаю, другого просто нет. Потом отслеживаю приходящие события. Все одинаково - вызывается UpdateRequest, из него Paint(ы), создается верный буфер. Но при обновлении из paintGL - экран не обновлен. Долго ползал в хвосте UpdateRequest, где зовутся ф-ции типа flush - тоже все одинаково.в cocoa нативный способ заставить вью перерисоваться — послать ему -setNeedsDisplay, что в свою очередь вызовет -drawInRect: Ну это вызов Paint, т.е. кода рисования, эта фаза проходитНазвание: Re: Индикатор "Drawing Objects" Отправлено: Igors от Апрель 07, 2022, 11:05 Продолжаю копаться. Собсно обновление (что становится видным на экране) происходит "в недрах", см аттач. Понял так это системное событие OSX недоступное из Qt напрямую. Поэтому в Qt+OSX я никак не могу "чего-то вызвать" - и экран обновлен, обязательно нужен processEvents. Ну и шо делать?
|