Оттестировал вывод по таблицам. Тестил на спрайте 2х2 знакоместа с маской.
Скорость отрисовки 1 байта с его маской = 232t.
Весь спрайт выкидывается на экран за 7421t прямой, 7463t зеркальный.
Не знаю пока, много это или мало. Если память не изменяет у Алония после кидания стэком было около 280t.
Плюсы метода:
- он есть и работает![]()
- есть клиппинг по правому и нижнему краю (любое мануальное значение),
- есть миррор на лету,
- всегда константное время вывода.
Минусы метода:
- так как рисуется сверху-вниз, появляется проблема отрисовки спрайта выходящего за верхний предел экрана, его тупо невозможно нарисовать, ибо координата Y вывода начинается с 0 (у Алония в Аллодах было рисование, начиная с ног персонажа и там нет этого трабла),
- нехилые таблицы, требующие размещения по красивому адресу. Учитывая вывод OR/XOR имеем 4096 таблицу прямого вывода + 4096 таблицу миррор вывода. Это КАПЕЦ КАК ПЛОХО, ибо нужно иметь эти таблицы в нижней памяти, и получается на программу условно ноль места.
По поводу необходимости функции миррора: прикинул, "отражённой" основной графики будет более 12000. Отсюда, заменить их на 4096 видится целесообразным.
- - - Добавлено - - -
Не в курсе, у Медноногова какой способ вывода? По таблицам или сдвигом в регистрах? Или ветвлением на подпроцедуры?




Ответить с цитированием