Сообщение от
Nesser
Ёмаё, я и говорил что слои и всё прочее это неактуально, всё должно работать АППАРАТНО.
Зачем 2 раздельные видеопамяти? сканер видео-строчек по сути готовый регенератор памяти, достаточно 1 микросхемы на 16 бит данных, 8Мб по 16 бит или что-то в этом роде (по сути 8Мб по 16 бит это уже 16 мбайт - 24 бита адреса), с ПЛИС на всякий случай можно вытащить 1,2 или 4 ноги для нескольких микросхем (дешифратор старших адресов). ПЛИС же в состоянии работать с памятью на стандартной частоте 133 МГц ?
В этой памяти прекрасно уместятся и все видеоданные и шрифты и 2 экрана. По сути к любому компу эту приблуду можно подключить при помощи 8 проводов данных и 2-3 адресов.
Сделать графический редактор специально для этой шняги, спрайтовый файл, в начале файла описатели спрайтов, 4 байта положение в файле + 1 байт ширина спрайта + 1 байт высота спрайта + 2 байта что нибудь связанное с банкой поллитры (для одинакового спрайта но разных цветов).
Кидаешь карте номер спрайта и куда вывести, по сути можно даже задавать и адрес якобы экрана, DMA кинет так как будто по этому адресу экран, всё нашвыряли, наложили, подтёрли, а потом готовое после кадрового синхроимпульса скопировали на экран, DMA всё равно перебрасывает быстрее чем сканер выводит точки, синхронизация сама собой отпадает, по сути все видеокарты так и работают.
И вообще че мы велосипед придумываем, принципы работы давно уже отработаны, достаточно реализовать в ПЛИС в минимальной необходимости, только нелинейный DMA перекидывающий данные с учётом размерности экрана.
А экран по факту сделать 8 или 16 бит на точку, преобразование из 1, 2, 4 бита на точку может сделать и сам DMA при переброске.