| Lethargeek |
30th December 2006 08:45 |
Quote:
Originally Posted by NovaStorm
Я бы не хотел работать с битпланами, но если приглядеться преимущества могут быть и тут. Например изменяющееся число этих самых планов. ТЕ хотим ЧБ - 1, 4 цвета 2 и тд вплоть до 32бит =)
|
Или после настройки палитры - например два слоя по 4 цвета.
Quote:
Originally Posted by Sergey
Если битпланы экрана расположить в разных страницах, то работать с ними можно, только быстро не получится.
|
Еще как получится, лишь бы руки откуда надо росли.
Quote:
Originally Posted by MegaMyth
У меня появились некоторые соображения насчет видеоадаптера...
|
Ну прям себя год назад вспомнил... :)
Quote:
Originally Posted by MegaMyth
Многие говорили, что на спектруме удобнее перемещаться от строчки к строчке и от столбца к столбцу простым INC/DEC H/L. А что если в видеоадаптер ввести порты указателя начальной точки. затем подавать команды видеоадаптеру аналогичные INC/DEC H/L, данные записывать тоже аутом, при этом ВК будет знать в какую сторону ему перемещаться после записи данных.
|
OUT суксь, он регистр BC сожрет, да и делать сможет немногое. А INC/DEC тем и хороши, что в любой момент можно сменить направление, юзать любой динамически вычисляемый шаг, выборочное стирание/заливка текстурой, выборочное чтение с экрана с проверками итд - что в башку взбредет.
Quote:
Originally Posted by MegaMyth
Также предлагаю ввести еще одну команду аналогичную PUSH POP для координат и регистры размера загружаемой области. Таким образом мы получаем чудовищное быстродействие...
|
Всего лишь небольшой прирост за счет оптимизации работы с регистрами (меньше сохранений/перезагрузок). Да и то еще не факт.
Quote:
Originally Posted by MegaMyth
записав в ВК размер пересылаемой области и её координаты на экране (и указав номер видеоэкрана) мы делаем простой LDIR и данные прорисовываются быстро и красиво :-) также можно ввести регистр прозрачного цвета. и при копировании прозрачные точки будут игнорироваться.
|
Зачем тут ldir? Куда он писать будет половину рабочего времени?
Тогда уж давать команду ВК схавать N следующих байт с ШД (кроме циклов M1), загнать в SP указатель на блок и N/2 раз выполнить POP.
Quote:
Originally Posted by MegaMyth
Еще можно прикрутить вместо LDIR более шуструю весч и пересылать данные еще быстрее...
|
DMA называется. В продвинутом варианте - правильно, блиттер.
Quote:
Originally Posted by MegaMyth
Как будут работать PUSH POP: мы указываем начальную координату и кидаем в стек. потом занимаемся прорисовкой чего либо. достаем координаты со стека смещаем их куда нада опять кладем на стек рисуем дальше и так далее.
|
Зачем обратно вытаскивать-то? Хто "смещает"? При перекачке данных чисто процессором смысла не вижу. Вот для блиттера была бы полезная штука, но только там не стек нужен, а очередь (и какой-то стандартный формат блиттерных команд).
Quote:
Originally Posted by MegaMyth
Также подумываю над тем, чтобы впиндюрить в ВК алгоритм прорисовки линий, многоугольников и окружностей, еще можно подумать над их заливкой.
Хотелось бы узнать Ваши предложения и пожелания.
|
Даже куча реализованных "в железе" возможностей не оправдают неудобную раскладку экрана и разрешение "от фонаря". На блочных пересылках и векторной графике свет клином не сошелся, Спек - не приставка.
|