Как увеличить скорость отрисовки на canvas?

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
zub
долгожитель
Сообщения: 2889
Зарегистрирован: 14.11.2005 22:51:26
Контактная информация:

Сообщение zub »

>>А в качестве проверки, в процедуре отрисовки для каждого объекта использую функцию RectInArea:
:shock:
Простые операции на CPU с ректами в качестве проверки "видимости" будут быстрее. Также отсеивать лучше пачками.

Вот еще вариант "рисовалки" на "канвасе" - http://sourceforge.net/projects/zcad/fi ... p/download но он векторный и опенглный
CriDos
новенький
Сообщения: 11
Зарегистрирован: 07.05.2013 11:06:10

Сообщение CriDos »

zub писал(а):Простые операции на CPU с ректами в качестве проверки "видимости" будут быстрее. Также отсеивать лучше пачками.

Можно подробнее? :)
zub
долгожитель
Сообщения: 2889
Зарегистрирован: 14.11.2005 22:51:26
Контактная информация:

Сообщение zub »

Операции с ректами можно делать без создания gdi объектов, если не устроили стандартные реализации - сделав свои.
Насколько я понял примитивы хранятся в линейном списке, сложив их в какое либо пространственно разбитое дерево можно будет отбраковывать ветви, а не каждый примитив в отдельности
CriDos
новенький
Сообщения: 11
Зарегистрирован: 07.05.2013 11:06:10

Сообщение CriDos »

zub, теперь понял, спасибо за совет :)
Ответить