OberonCore https://forum.oberoncore.ru/ |
|
Прокрутка Крысой https://forum.oberoncore.ru/viewtopic.php?f=2&t=3391 |
Страница 4 из 4 |
Автор: | Иван Денисов [ Пятница, 02 Октябрь, 2015 08:24 ] |
Заголовок сообщения: | Re: Прокрутка Крысой |
Роман М. писал(а): Иван Денисов писал(а): Господа, кому интересна качественная прокрутка текста в ББ, прошу протестировать данный модуль. Переписал заново вычисление позиции при прокрутке. Иван, на каком документе ощутимее всего заметны тормоза при прокрутке? У меня на мониторе почему-то не видно разницы. Бери документы с большим числом Кириллицы, еще TrueType метрику включи для большего эффекта. |
Автор: | prospero78 [ Пятница, 02 Октябрь, 2015 09:21 ] |
Заголовок сообщения: | Re: Прокрутка Крысой |
Я тут Вань, нечаянно подумал, почему для мышки три события. Возможно я не прав, но как-то по аналогии с Visual Basic: 1. Mouse_onDown 2. Mouse_onClick 3. Mouse_onUp. На сколько я понял из исходников БлэкБокс, он не различает эти события. Так что можно смело ставить счётчик на три. |
Автор: | GameHunter [ Суббота, 03 Октябрь, 2015 12:46 ] |
Заголовок сообщения: | Re: Прокрутка Крысой |
При применении этого модуля прокрутка стала какая-то рваная, что ли... Чисто субъективное впечатление. |
Автор: | Иван Денисов [ Суббота, 03 Октябрь, 2015 14:12 ] |
Заголовок сообщения: | Re: Прокрутка Крысой |
GameHunter писал(а): При применении этого модуля прокрутка стала какая-то рваная, что ли... Чисто субъективное впечатление. Исчез эффект анимации. Раньше по три раза рисовалось, поэтому был smooth эффект... А на русской документации например сравните. |
Автор: | Kemet [ Суббота, 03 Октябрь, 2015 17:09 ] |
Заголовок сообщения: | Re: Прокрутка Крысой |
ilovb писал(а): Т.е. в данном случае проблема в TestFoo2.Do, но профилировщик ББ этого не знает. А ты дождался завершения выполнения своей мега-процедуры в TestFoo2? Кстати, в профилировщике компилятора FoxCompiler из A2 та же самая проблема - если количество итераций вменяемое, то выдаётся правильный результат, иначе, естественно, фигня. Вот интересно, как в других средах? |
Автор: | Иван Денисов [ Вторник, 06 Октябрь, 2015 03:56 ] | ||
Заголовок сообщения: | Re: Прокрутка Крысой | ||
Доработал еще. Неверно была прокрутка вниз сделана. Теперь вроде все корректно.
|
Автор: | Иван Денисов [ Пятница, 09 Октябрь, 2015 09:33 ] |
Заголовок сообщения: | Re: Прокрутка Крысой |
Кстати! Заметил, что исчез старый баг, когда в Wine окно выходит нижней частью за границы экрана, было размазывание содержимого по окну. Вложение: badScrol.png [ 11.45 КБ | Просмотров: 9921 ] Теперь этого не наблюдается. |
Автор: | Иван Денисов [ Суббота, 10 Октябрь, 2015 22:16 ] | ||
Заголовок сообщения: | Re: Прокрутка Крысой | ||
Йо-хо-хо. Я сделал кэширование ширин строк в дереве и это ускорило отрисовку текстов до приемлемого уровня! Памяти такой способ потребляет очень мало. Так что для своего проекта сразу в дело пущу. Выкладываю исходники новой HostFonts для версии Центра. Что при этом обнаружил!? GatherString из TextSetters обрабатывает кириллические тексты побуквенно, что с одной стороны хорошо — дерево получается маленькое, но с другой стороны — это явно косяк. Может кому-то придет в голову как это вылечить? Код: PROCEDURE GatherString (rd: StdReader);
VAR i, len: INTEGER; ch: CHAR; BEGIN i := 1; len := LEN(rd.string) - 1; ch := rd.r.char; WHILE (i < len) & (rd.r.view = NIL) & (rd.r.attr = rd.attr) & ( (" " < ch) & (ch <= "~") & (ch # "-") OR (ch = digitspace) OR (ch >= nbspace) & (ch < 100X) & (ch # softhyphen) ) DO (* rd.r.char > " " => ~rd.eot *) rd.string[i] := ch; INC(i); rd.eot := rd.r.eot; rd.r.Read; ch := rd.r.char; INC(rd.pos) END; rd.string[i] := 0X; rd.setterOpts := {wordJoin}; IF i = 1 THEN IF WordPart(rd.string[0], 0X) THEN INCL(rd.setterOpts, wordPart) END END; rd.w := rd.attr.font.StringWidth(rd.string); rd.endW := rd.w END GatherString;
|
Автор: | Иван Денисов [ Вторник, 02 Февраль, 2016 20:53 ] |
Заголовок сообщения: | Re: Прокрутка Крысой |
Мы с Олегом Чередниченко устроили мозговой штурм и вместе решили проблему: http://forum.blackboxframework.org/view ... 3135#p3135 Всего одна строчка кардинально влияет на эффективность отрисовки не ASCII текстов. Вот сравните две версии: До: http://blackboxframework.org/unstable/i ... a1.389.zip После: http://blackboxframework.org/unstable/i ... a1.415.zip |
Автор: | prospero78 [ Четверг, 17 Март, 2016 10:33 ] |
Заголовок сообщения: | Re: Прокрутка Крысой |
Ваня. Я сейчас тебе подкину работы. Заметил только-что Пока режим просмотра -- тормоза при прокрутке. Как только ставлю режим редактирования -- тормоза испаряются. Где-то надо в режиме просмотра ещё допилить) |
Страница 4 из 4 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |