В детстве завидовал быстрому корветовскому paintу. Корветовский бейсик медленно рисует круги, зато очень быстро закрашивает. Проблема paint в векторовском бейсике связана с тем, что процедура там чисто пиксельная и никак не использует байтовую структуру экрана для ускорения. Зато процедура очень компактная и простая. Взял ее за основу и перевел в двухцветный вариант. А потом оптимизировал за счет комбинированного использования байтов/пикселов. Процедура ускорилась на (десятичный) порядок (сравниваю двухцветные варианты, цветной еще намного медленнее)! Жалко не сохранил первый вариант, было бы видно, как стало заливать в 10 раз быстрее. Теперь корветовская процедура всего в два с копейками раза быстрееВозможно стоило ее взять за основу.
Нужно конечно отметить, что корветовский paint работает с 8 цветным экраном, а мой вариант с 2х цветным, но корветовский "ускоритель" волшебным образом в вектор не пересадишь. Прикидываю, что при переходе к цветному варианту замедление было бы в худшем случае раза в 4, что все равно намного быстрее бейсиковской процедуры. Но такой вариант был бы довольно большим. А вот с z80 замедление было бы не таким существенным, думаю раза в 2.
Пока выкладываю "тизер" без исходника, может еще пооптимизирую.




Возможно стоило ее взять за основу.
Ответить с цитированием