ZXNet эхоконференция «code.zx»


тема: вывод буковочек шириной точечек



от: jtn
кому: All
дата: 15 Jan 2006
Hello, lvd

в #z80-06 76кб текста, музыка, гора таблиц, фонт 4x7 и
пропорциональный Xx7 развернутый 8 раз.
декранчится код на горизонтальную строку - вызывается 8 раз.
вывод экрана push'ми (в push'евом буфере +2 строки - след. верхняя и нижняя,
сначала строится весь новый экран потом декранчится в буфер новая строка -
чтобы луч не резало).
ускорение фиг знает сильное ли получилось но в турбомоде весь экран без верхних
трех знакомест успевает (24 текст строки), без турбо - строк 9 (с вкл. музыкой
вроде) - строки 7 пикс выстотой

от: lvd
кому: All
дата: 15 Jan 2006
Hello, captain cobalt

cap> А правда, что буквы моноширинного шрифта 6 пикс. могут занимать
cap> только 4 различных положения относительно знакоместа? ;)

А правда, что ты не знаешь, о чём конкретно я говорил? Выйдет хостагес от
3умф+майхем - узнаешь.

от: lvd
кому: All
дата: 15 Jan 2006
Hello, Знахарь

> Увы, регистров тут фонарь... Это на амиге 16 штук :(

Таки у Z80 16 тоже регистров! А если индексы на половинки разбить то и вообще
18 =)

от: van Yu Shinn
кому: All
дата: 15 Jan 2006
Hello, fk0

lvd> 8 процедур вывода буковки. Из них 3 выводят в 1 байт, остальные в 2
lvd> байта (фонт 6 точек шириной).

А правда, что буквы моноширинного шрифта 6 пикс. могут занимать только 4
различных положения относительно знакоместа? ;)

от: van Yu Shinn
кому: All
дата: 15 Jan 2006
Hello, fk0

Буквы -- это в некотором смысле чанки. :)

В чанковых демах изображение сначала рендерится в чанковый буфер, а потом
перерисовывается в пиксели на экран.

Hаиболее злые c2p способны отрисовать экран менее чем за 2 инта. Может быть
некоторые идеи оттуда будут полезны?

от: van Yu Shinn
кому: All
дата: 15 Jan 2006
Hello, fk0

Если у отрезанных букв много элементов повторяется, то почему бы при отрисовке
одной буквы её наиболее частый элемент не положить в регистр и писать из
регистра?...

от: Владимир Кладов
кому: All
дата: 15 Jan 2006
Hello, jtn

если выводить символ за символом, то это будет очень медленно. Hо почему-то все
идут именно этим путем. Традиционное мышление.
Что есть изменить порядок вывода? Для вывода страницы сначала текст
просматривается и помечаются буковки, которые можно вывести без маски, просто
"положить" в память, и для каждой буковки считается смещение. Смещение кстати
может быть и переменным, если шрифт не моноширинный, например для широких
буковок 5, а для поуже 4, а i та вообще 2 занимать может. Таблица сдвигов для
максимальной ширины 5 (т.е. 6 с зазором) займет 32х8 = 256 байт. Ее надо
разместить по границе блока 256 байт. Hа втором проходе печатаются оставшиеся
буковки, уже с маской. Если делать через буфер, то на одном кадре надо
заполнять буфер, а на втором перебрасывать его двигаясь позади луча.

от: Гаврилов Виталий
кому: All
дата: 15 Jan 2006
Hello, Vladimir Kladov

Vla> Что есть изменить порядок вывода? Для вывода страницы сначала текст
Vla> просматривается и помечаются буковки, которые можно вывести без
Vla> маски, просто "положить" в память, и для каждой буковки считается
Vla> смещение.

ага. а сколько будет "стоить" первоначальный просмотр строки с подсчетом
позиции текущего символа (я про пропорциональный шрифт говорю), потом вывод
(обязательно по OR/XOR) оставшихся со сдвигом?

от: Гаврилов Виталий
кому: All
дата: 15 Jan 2006
Hello, Знахарь

> PUT это имеется ввиду просто байтик вывел и всё ?
>
> М-да... Так что, выходит только классика ???

выходит так (с) Винни Пух %)

ну я так делал у себя в QHTV. довольно шустро летает все. особенно если учесть,
что сначала печать идет в буфер, а потом выводится на экран. притом что буфер
еще предварительно очищается (не полностью правда)

от: Знахарь
кому: All
дата: 15 Jan 2006
Hello, Vitamin

PUT это имеется ввиду просто байтик вывел и всё ?

М-да... Так что, выходит только классика ???

от: Знахарь
кому: All
дата: 15 Jan 2006
Hello, captain cobalt

Увы, регистров тут фонарь... Это на амиге 16 штук :( Были попытки делать типа
кеширование или умную печать и другие страшно умные слова... Т.е. при после
ротации байты сохраняются и сохраняется код полосочки. Дальше все печатается и
тп. а при следующем цикле проверяем, не повторяется ли эта полосочка. Для того,
чтоб не ротировать, а просто взять сохраненное.

Hу дык тоже в итоге медленнее :(




Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Это интересно - И снова пятерка лучших игр для ZX-Sрectrum, IBМ PC и игровых приставок.
Презент - приложение газеты: Grand Prix Simulator 2, Pusher6.02, схема Flash Colour.
Программирование - КР580ВВ55А.
Рассказ - от RAVE/PRODIGY TEAM.
Новости - я сделал boot, Fatality сделали игру Kolobok 2.

В этот день...   26 апреля