OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Вторник, 23 Октябрь, 2018 00:02

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 26 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: И снова о мерцании.
СообщениеДобавлено: Пятница, 18 Март, 2011 23:20 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9011
Откуда: Россия, Орёл
А эта пауза - она будет, если переключить форму в другой режим, в маску?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: И снова о мерцании.
СообщениеДобавлено: Пятница, 18 Март, 2011 23:28 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2930
Откуда: г. Ярославль
Да, всё ровно так же. Сеточки только нет.

P.S. Кстати, простейший эксперимент.

Берём форму, растягиваем её поширше и размещаем на ней матрицу 7x15 стандартных кнопок "Cancel". Если теперь выделить форму как монолит и растягивать её, то контролы начнут мерцать.

На видео видно, как этот массив контролов рисуется постепенно, в три или четыре приёма.

Опять же, непонятно, как это согласуется с буферизацией.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: И снова о мерцании.
СообщениеДобавлено: Суббота, 19 Март, 2011 00:31 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2524
Откуда: Россия, Ярославль
а вот саморисованые кнопки в том же количестве не моргают вовсе.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: И снова о мерцании.
СообщениеДобавлено: Суббота, 19 Март, 2011 11:15 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2930
Откуда: г. Ярославль
По результатам, выработались некоторые способы избавления от мерцания GUI.

1) Отказ от виндовых контролов везде, где только можно.
2) Оптимизация работы с БД, т.к. уменьшение количества синхронных запросов облегчает отрисовку.
3) Вынос тяжёлых операций в отложенные действия (эффект сомнительный, так как однопоточность остаётся самым сильным фактором, влияющим на перерисовку).

P.S. Пытаясь сформулировать проблему, мы с Петром пока что пришли к такому выводу: механизмы отображения в ББ хороши сами по себе, но GUI в целом имеет некоторые проблемы в виде однопоточной увязки и зависимостей от WinAPI. В результате, затяжные процессы в прикладной логике могут оказывать влияние на момент финального рендера виджетов.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: И снова о мерцании.
СообщениеДобавлено: Суббота, 19 Март, 2011 13:05 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 7861
Откуда: Троицк, Москва
Иван Кузьмицкий писал(а):
затяжные процессы в прикладной логике могут оказывать влияние на момент финального рендера виджетов.
Напрашивается выделение прикладной логики с затяжными процессами в отдельный экземпляр ББ -- и пусть общается с "фасадом" через какое-нибудь TCP/IP.

Сам бог велел, no?

(В длинных вычислялках эта проблема тоже есть, поэтому любопытно.)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: И снова о мерцании.
СообщениеДобавлено: Пятница, 29 Апрель, 2011 21:59 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2930
Откуда: г. Ярославль
Небольшое замечание.

Заключение операций изменения внедрённых отображений в модификационные скобки BeginModification, EndModification значительно повлияло на общую картину в целом. Эти операции с самого начала не должны были быть неотменяемыми, но как-то это всё откладывалось "на потом".
Так вот, флики стали совсем малозаметны (хотя там, где много виндовых контролов, всё равно остались).

А наткнулись на этот факт совершенно случайно, копая бесконтрольное отжирание памяти при каждой перерисовке внедрённых отображений.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 26 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2018, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB