Mario wrote:в худшем случае придется просматривать все 255 слоев, а на каждый слой 4 проверки координат итого 256*4=1024 проверки на каждую точку.
У меня нет 255 задач. И у тебя нет. И ни у кого нет. Тем более чтобы все были развернуты и что-то там себе рисовали.
20-30 маленьких окошек реально перекрывают весь экран, т.е. просмотр потребует (пусть не в худшем, но в "очень плохом" случае) около сотни проверок.
Скорость вывода отдельных пикселей не очень критична (если только буквы не рисуются попиксельно). Надо думать как нам пробить стену в скорости горизонтальной заливки (особенно для битмапов).
Да, 20% ускорение в hline - это конечно хорошо.
Но уже сейчас видно, что можно быстрее.
И совершенно ясно, что кэш надо освобождать для более полезного груза. У меня, например, поток входных данных рвется при отрисовке картинки - проц буксует на простейшей выборке. И запрет кэширования таблицы конечно же не помог - рисование теперь просто засыпает.
А ведь открыты-то всего 2-3 окна, здесь "больше/меньше" просто напрашиватся.
Пока что никто не реализовал лучше. Особенно чтобы в тесте заметно было.
Последний эксперимент (кэшируемая таблица, hline и vline вызываются через быстрый AMD-syscall с передачей параметров через стек)
Результаты для транка - в крайнем правом столбце; в левом окне - баловство с закрытым окном (это то, чего можно достичь с двойной оконной буферизацией)
Левый столбец правого окна - то, что уже реализовано. По-моему, очень даже заметно.