вывод буковочек шириной точечек — ZXNet «code.zx»

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

ZXNet echo conference «code.zx»



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

from: lvd
to: All
date: 15 January 2006
Hello, captain cobalt cap> А правда, что буквы моноширинного шрифта 6 пикс. могут занимать cap> только 4 различных положения относительно знакоместа? ;) А правда, что ты не знаешь, о чём конкретно я говорил? Выйдет хостагес от 3умф+майхем - узнаешь.

from: lvd
to: All
date: 15 January 2006
Hello, Знахарь > Увы, регистров тут фонарь... Это на амиге 16 штук :( Таки у Z80 16 тоже регистров! А если индексы на половинки разбить то и вообще 18 =)

from: van Yu Shinn
to: All
date: 15 January 2006
Hello, fk0 lvd> 8 процедур вывода буковки. Из них 3 выводят в 1 байт, остальные в 2 lvd> байта (фонт 6 точек шириной). А правда, что буквы моноширинного шрифта 6 пикс. могут занимать только 4 различных положения относительно знакоместа? ;)

from: van Yu Shinn
to: All
date: 15 January 2006
Hello, fk0 Буквы -- это в некотором смысле чанки. :) В чанковых демах изображение сначала рендерится в чанковый буфер, а потом перерисовывается в пиксели на экран. Hаиболее злые c2p способны отрисовать экран менее чем за 2 инта. Может быть некоторые идеи оттуда будут полезны?

from: van Yu Shinn
to: All
date: 15 January 2006
Hello, fk0 Если у отрезанных букв много элементов повторяется, то почему бы при отрисовке одной буквы её наиболее частый элемент не положить в регистр и писать из регистра?...

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

from: Гаврилов Виталий
to: All
date: 15 January 2006
Hello, Vladimir Kladov Vla> Что есть изменить порядок вывода? Для вывода страницы сначала текст Vla> просматривается и помечаются буковки, которые можно вывести без Vla> маски, просто "положить" в память, и для каждой буковки считается Vla> смещение. ага. а сколько будет "стоить" первоначальный просмотр строки с подсчетом позиции текущего символа (я про пропорциональный шрифт говорю), потом вывод (обязательно по OR/XOR) оставшихся со сдвигом?

from: Гаврилов Виталий
to: All
date: 15 January 2006
Hello, Знахарь > PUT это имеется ввиду просто байтик вывел и всё ? > > М-да... Так что, выходит только классика ??? выходит так (с) Винни Пух %) ну я так делал у себя в QHTV. довольно шустро летает все. особенно если учесть, что сначала печать идет в буфер, а потом выводится на экран. притом что буфер еще предварительно очищается (не полностью правда)

from: Знахарь
to: All
date: 15 January 2006
Hello, Vitamin PUT это имеется ввиду просто байтик вывел и всё ? М-да... Так что, выходит только классика ???

from: Знахарь
to: All
date: 15 January 2006
Hello, captain cobalt Увы, регистров тут фонарь... Это на амиге 16 штук :( Были попытки делать типа кеширование или умную печать и другие страшно умные слова... Т.е. при после ротации байты сохраняются и сохраняется код полосочки. Дальше все печатается и тп. а при следующем цикле проверяем, не повторяется ли эта полосочка. Для того, чтоб не ротировать, а просто взять сохраненное. Hу дык тоже в итоге медленнее :(